dumpfs(8): add option to only print superblock information
Add an option to dumpfs, `-s`, that only prints the super block information. Reviewed by: chs, imp Differential Revision: https://reviews.freebsd.org/D30881
This commit is contained in:
parent
aa0ab681ae
commit
dc35484536
@ -28,7 +28,7 @@
|
||||
.\" @(#)dumpfs.8 8.1 (Berkeley) 6/5/93
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd May 16, 2013
|
||||
.Dd July 2, 2021
|
||||
.Dt DUMPFS 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -39,6 +39,7 @@
|
||||
.Op Fl f
|
||||
.Op Fl l
|
||||
.Op Fl m
|
||||
.Op Fl s
|
||||
.Ar filesys | device
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
@ -46,9 +47,10 @@ The
|
||||
utility prints out the UFS super block and cylinder group information
|
||||
for the file system or special device specified, unless the
|
||||
.Fl f ,
|
||||
.Fl l
|
||||
.Fl l ,
|
||||
.Fl m ,
|
||||
or
|
||||
.Fl m
|
||||
.Fl s
|
||||
flag is specified.
|
||||
The listing is very long and detailed.
|
||||
This
|
||||
@ -97,6 +99,10 @@ The
|
||||
.Fl r
|
||||
flag is needed if the filesystem uses
|
||||
.Xr gjournal 8 .
|
||||
.Pp
|
||||
If
|
||||
.Fl s
|
||||
is specified, only the super block information is printed.
|
||||
.Sh SEE ALSO
|
||||
.Xr fs 5 ,
|
||||
.Xr fsck 8 ,
|
||||
|
@ -81,7 +81,7 @@ static const char rcsid[] =
|
||||
|
||||
static struct uufsd disk;
|
||||
|
||||
static int dumpfs(const char *);
|
||||
static int dumpfs(const char *, int);
|
||||
static int dumpfsid(void);
|
||||
static int dumpcg(void);
|
||||
static int dumpfreespace(const char *, int);
|
||||
@ -96,11 +96,11 @@ int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
const char *name;
|
||||
int ch, dofreespace, domarshal, dolabel, eval;
|
||||
int ch, dofreespace, domarshal, dolabel, dosb, eval;
|
||||
|
||||
dofreespace = domarshal = dolabel = eval = 0;
|
||||
dofreespace = domarshal = dolabel = dosb = eval = 0;
|
||||
|
||||
while ((ch = getopt(argc, argv, "lfm")) != -1) {
|
||||
while ((ch = getopt(argc, argv, "lfms")) != -1) {
|
||||
switch (ch) {
|
||||
case 'f':
|
||||
dofreespace++;
|
||||
@ -111,6 +111,9 @@ main(int argc, char *argv[])
|
||||
case 'l':
|
||||
dolabel = 1;
|
||||
break;
|
||||
case 's':
|
||||
dosb = 1;
|
||||
break;
|
||||
case '?':
|
||||
default:
|
||||
usage();
|
||||
@ -139,7 +142,7 @@ main(int argc, char *argv[])
|
||||
else if (dolabel)
|
||||
eval |= dumpfsid();
|
||||
else
|
||||
eval |= dumpfs(name);
|
||||
eval |= dumpfs(name, dosb);
|
||||
ufs_disk_close(&disk);
|
||||
}
|
||||
exit(eval);
|
||||
@ -154,7 +157,7 @@ dumpfsid(void)
|
||||
}
|
||||
|
||||
static int
|
||||
dumpfs(const char *name)
|
||||
dumpfs(const char *name, int dosb)
|
||||
{
|
||||
time_t fstime, fsmtime;
|
||||
int64_t fssize;
|
||||
@ -324,6 +327,8 @@ dumpfs(const char *name)
|
||||
printf("blocks in last group %ld\n\n",
|
||||
(long)((fssize % afs.fs_fpg) / afs.fs_frag));
|
||||
}
|
||||
if (dosb)
|
||||
return (0);
|
||||
while ((i = cgread(&disk)) != 0) {
|
||||
if (i == -1 || dumpcg())
|
||||
goto err;
|
||||
|
Loading…
x
Reference in New Issue
Block a user