Read LPI Linux Certification in a Nutshell Online
Authors: Adam Haeder; Stephen Addison Schneiter; Bruno Gomes Pessanha; James Stanger
Tags: #Reference:Computers
xfs_info
xfs_infodevice
XFS is a filesystem type that was originally designed
for use on the IRIX operating system. It has been ported to Linux
and is a popular choice among Linux users for its large filesystem
capacity and robust feature set. The
xfs_info
program will print out information about the XFS partition.
Create an XFS filesystem on
/dev/sdb1
:
#mkfs.xfs –q /dev/sdb1
Query the filesystem for information:
#xfs_info /dev/sdb1
meta-data=/dev/sdb1 isize=256 agcount=4, agsize=490108 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=1960432, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=0
realtime =none extsz=4096 blocks=0, rtextents=0
fsck
fsck [options
] [-ttype
] [fs-options
]filesystems
Checkfilesystems
for
errors and optionally correct them. By default,
fsck
assumes the
ext2
filesystem type and runs interactively, pausing to ask for
permission before applying fixes.
Run checks on all filesystems specified in
/etc/fstab
. This option is intended for
use at boot time, before filesystems are mounted.
Don’t execute, but show what would be done.
type
Specify the type of filesystem to check; the default is
ext2
. The value oftype
determines which
filesystem-specific checker is called.
superblock
Use an alternative copy of the superblock. In
interactive mode,
e2fsck
automatically
uses alternative superblocks. Typically, you’ll try-b 8193
in noninteractive mode to restore a
bad superblock.
Check for bad blocks.
Force a check, even if the filesystem looks
clean.
Automatically repair the filesystem without
prompting.
Answers “yes” to all interactive prompts, allowing
e2fsck
to be used
noninteractively.
Check the
ext3
filesystem on
/dev/sda1
, which is not mounted:
#fsck /dev/sda1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
/boot: clean, 48/50200 files, 41926/200780 blocks
The partition was clean, so
fsck
didn’t
really check it.
Force a check:
#fsck -f /dev/sda1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/boot: 48/50200 files (22.9% non-contiguous), 41926/200780 blocks
Force another check, this time with verbose output:
#fsck -fv /dev/sda1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
48 inodes used (0.10%)
11 non-contiguous files (22.9%)
0 non-contiguous directories (0.0%)
# of inodes with ind/dind/tind blocks: 22/12/0
41926 blocks used (20.88%)
0 bad blocks
0 large files
32 regular files
6 directories
0 character device files
0 block device files
0 fifos
0 links
1 symbolic link (1 fast symbolic link)
0 sockets
--------
39 files
Allow
fsck
to automatically perform all
repairs on a damaged filesystem by specifying the
-y
option to run the command
automatically:
#fsck -y /dev/sda1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
Couldn't find ext2 superblock, trying backup blocks...
/dev/sda1 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: +1 +2 +3 +4
Fix? yes
Inode bitmap differences: +1 +2 +3 +4 +5 +6
Fix? yes
/dev/sda1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda1: 1011/34136 files (0.1% non-contiguous), 4360/136521 blocks
When Linux boots, the kernel performs a check of all
filesystems in
/etc/fstab
using the
-A
option to
fsck
(unless
the
/etc/fstab
entry contains the
noauto
option). Any filesystems that were not
cleanly unmounted are checked. If that check finds any significant
errors, the system drops into single-user mode so you can run
fsck
manually. Unfortunately, unless you have
detailed knowledge of the inner workings of the filesystem, there’s
little you can do other than to have
fsck
perform all of the repairs. As a result, it is common to use the
-y
option and hope for the best.
In some cases, a filesystem may be beyond repair or may even
trigger a bug in
e2fsck
. In these (thankfully
very
rare) situations, there are a few commands
that can help an
ext2
filesystem wizard debug
the problem. These commands are
e2image,
dumpe2fs
, and
debugfs
. For more
information on these tools, read their appropriate manpages.
xfs_metadump
xfs_metadump [options
]device
xfs_metadump
is a debugging tool
that copies the metadata from an XFS filesystem to a file. This is
useful as a debugging tool when you suspect filesystem problems, or
as a backup tool. Images created by
xfs_metadump
can be restored to a filesystem
using the command
xfs_mdre
store
.
Stops the dump on a read error. Normally, it will ignore
read errors and copy all the metadata that is
accessible.
Shows dump progress.
Prints warnings of inconsistent metadata to
stderr
. Bad metadata is still
copied.
On the Exam
Familiarity with
du,
df
, and
fsck
is important. Be sure you
understand the differences between the commands and when each is
used.
As discussed in
Objective 1: Create Partitions and Filesystems
, the Linux directory
hierarchy is usually made up of multiple partitions, each joined to the
root filesystem. Filesystems on removable media, such as CD-ROMs, USB
flash drives, and floppy disks, are joined in the same way, but usually on
a temporary basis. Each of these separate filesystems is
mounted
to the parent filesystem as a
directory (or
mount point
) in the unified
hierarchy.
Directories intended as mount points usually don’t contain files or
other directories. Instead, they’re just empty directories created solely
to mount a filesystem. If a directory that already contains files is used
as a mount point, its files are obscured and unavailable until the
filesystem is unmounted. Typical mount points include the directories
/usr
,
/home
,
/var
, and others.
Since the Linux filesystem hierarchy is spread across
separate partitions and/or multiple drives, it is necessary to
automatically mount those filesystems at boot time. In addition,
removable media and filesystems on remote NFS servers may be used
regularly with recurring mount properties. All of this information is
recorded in the
/etc/fstab
file.
Filesystems defined in this file are checked and mounted when the system
boots. Entries in this file are consulted for default information when
users wish to mount removable media.
The
/etc/fstab
file (see
Example 7-1
) is plain text and
consists of lines with six fields:
This field specifies the device file of the partition
holding the filesystem (for example,
/dev/hda1
). This may either be the device
name (like
/dev/hda1
), the UUID of the device
(like
UUID=35f8a3e0-9257-4b71-913d-407bef4eeb90
),
or the partition label (like
LABEL=/boot
).
This field specifies the directory on which the filesystem
is to be mounted. For example, if
/dev/hda1
contains the root filesystem, it is mounted at
/
. The root filesystem will contain
additional directories intended as mount points for other
filesystems. For example,
/boot
may be an
empty directory intended to mount the filesystem that contains
kernel images and other information required at boot time.
Next, the type of filesystem is specified. These may include
ext2
filesystems,
swap
,
nfs
,
iso9660
(CD-ROM),
and others.
This field contains a comma-separated list of options. Some
options are specific to particular filesystem types. Options are
described later in this Objective.
The
dump
program, a standard
Unix backup utility, will consult
/etc/fstab
for information on how often to dump each filesystem. This field
holds an integer, usually set to1
for native Linux filesystems such as
ext2
, and to0
for others.
This field is used by the
fsck
utility when the
-A
option is specified,
usually at boot time. It is a flag that may contain only the
values0
,1
, or2
.
A1
should be entered
for the root filesystem and instructs
fsck
to check that filesystem
first.
A2
instructs
fsck
to check corresponding filesystems
after those with a1
.
A0
instructs
fsck
not to check the filesystem.
Example 7-1. Sample /etc/fstab file
/dev/sda1 / ext2 defaults 1 1
/dev/sda5 /boot ext2 defaults 1 2
/dev/sda9 /home ext2 defaults 1 2
/dev/sda6 /root ext2 defaults 1 2
/dev/sda10 /tmp ext2 defaults 1 2
/dev/sda8 /usr ext2 defaults 1 2
/dev/sda7 /var ext2 defaults 1 2
/dev/sda11 swap swap defaults 0 0
/dev/fd0 /mnt/floppy ext2 noauto,users 0 0
/dev/hdc /mnt/cdrom iso9660 noauto,ro,users 0 0
/dev/hdd /mnt/zip vfat noauto,users 0 0
fs1:/share /fs1 nfs defaults 0 0
The
fstab
in
Example 7-1
depicts a system with a
single SCSI disk,
/dev/sda
. The first partition,
/dev/sda1
, contains an
ext2
root filesystem. Partition
/dev/sda11
is swap.
Partitions
/dev/sda5
through
/dev/sda10
contain
ext2
filesystems for
/boot
,
/home
,
/root
,
/tmp
,
/usr
, and
/var
, respectively. All of the local
ext2
partitions are to be checked by
fsck
and dumped. Entries for the floppy disk
(
/dev/fd0
), CD-ROM (
/dev/hdc
), and IDE Zip drive
(
/dev/hdd
) hold appropriate mount properties,
making manual mounting of these devices simple. Finally, this example
shows a remote NFS mount of directory
/share
of
systemfs1
. It is mounted locally at
/fs1
.
The
/etc/fstab
file is automatically created
when Linux is installed and is based on the partitioning and mount point
configuration specified. This file can be changed at any time to add
devices and options, tailoring the filesystem to meet your specific
needs.
On the Exam
You should memorize the functions of each column in
/etc/fstab
and be prepared to
answer questions on each.
Filesystems are mounted using the
mount
command. At boot time, those filesystems with
a nonzero pass number in
/etc/fstab
are checked and
automatically mounted. Later, you can run
mount
manually to add other filesystems to the filesystem
hierarchy
.
Filesystems can be unmounted using the
umount
command. When a filesystem is
unmounted, the buffers of the filesystem are synchronized with the
actual contents on disk and the filesystem is made unavailable, freeing
the
mount point. If the filesystem is busy,
umount
yields an error. This will happen, for
example, when the filesystem contains open files or when a process has a
working directory within the filesystem. Other less obvious errors can
occur when removable media are exchanged without being unmounted
first.