38
Linux File System

11 linux filesystem copy

Embed Size (px)

DESCRIPTION

Unix / Linux Fundamentals

Citation preview

Page 1: 11 linux filesystem copy

Linux File System

Page 2: 11 linux filesystem copy

Partitions & the fdisk command

• fdisk is an interactive utility to manipulate disk partitions.

• Use fdisk –l to review the disks and partitions on the system.

• Use fdisk and the disk special device file in order to create new partitions.Example:# fdisk /dev/hda

Page 3: 11 linux filesystem copy

Partitions & the fdisk command

• The fdisk command supports many types of partitions.

• Alternative:– Gnu parted – create, copy and manipulate

partitions.– Sfdisk

Page 4: 11 linux filesystem copy

Supported Local File Systems

• Linux Supports vast amount of local, disk based, file systems. For example:– Ext 2 – previous native Linux file system.

– Ext 3 – Current native Linux file system.

– Vfat – DOS 32 file system.

– ISO9660 – CDROM Image file system.

Page 5: 11 linux filesystem copy

Ext 3 File System

• Ext 3 is the default FS in many Linux distributions.

• Ext 3 is a journal FS, thus improves data integrity and system availability (fast fsck).

• Ext 3 is an improvement of Ext 2, so transfer to Ext 3 is considerably easy.

• Ext 3 FS is part of Linux Kernel since version 2.4.16.

Page 6: 11 linux filesystem copy

Super

Block

Ext 3 File System Structure

GroupDisctipto

rs

BlockBitma

p

InodeBitma

p

InodeTable Data Data Data

Block Group

Same for all block groups

Page 7: 11 linux filesystem copy

Ext 3 File System Structure

• Ext 3 FS is divided to block groups in order to reduce seek time and preserve data integrity (reduce fragments).

• Each block group contains the following:– Super Block – the super block contains

data about the status of the current FS.There are several instances of the Super Block on the FS. Each instance is stored at an offset of 1024 Bytes from the previous one.

Page 8: 11 linux filesystem copy

Ext 3 File System StructureThe Super Block contains the following data:Number of Inodes on the FS and the number of free Inodes.Number of data blocks on the FS and the number of

free data blocks.Time and mounting point of the last system mount.Flags indicating the state of the FS.Number of times the FS was mounted.Time the FS was last checked.Maximum time permissible between checks.Magic number indicating an Ext 3 FS.

Page 9: 11 linux filesystem copy

Ext 3 File System Structure

– Group Discriptors – Contain information about the block group. Such as:

The address of the block containing the block bitmap of the group.

The address of the block containing the inode bitmap of the group.

The address of the block containing the indoe table of the group.

Page 10: 11 linux filesystem copy

Ext 3 File System Structure Count of free blocks in the group. Count of free indoes in the group.

• Block bitmap indicates which blocks in the group have been allocated.

• Inode bitmap indicates which Inodes in the group have been allocated.

• Inode table is an array of Inodes for that particular group.

Page 11: 11 linux filesystem copy

Creating Ext 3 File System

• Use mkfs command to create Ext 3 FS.• Example:# mkfs -t ext3 -b 2048 -j -L local /dev/hdb1

• -t - FS type (default Ext 2)• -b - Block Size (Default 1024)• -j - Journaled• -L - volume label

Page 12: 11 linux filesystem copy

The dumpe2fs Command

• Use the dumpe2fs command in order to view the properties of the Ext2/Ext3 file system.

• The dumpe2fs command prints the super block and blocks group information for the file system present on device.

Page 13: 11 linux filesystem copy

Converting Ext 2 to Ext 3

• Use tune2fs to convert exsisting Ext 2 FS to Ext 3 FS.

• Example:# tune2fs -j -L local /dev/hdb1

• -j - Add journal to the FS

• -L - Volume Label

Page 14: 11 linux filesystem copy

Using the fsck Command

• File system status must be clean in order to be

mounted and made available on the system.

• The fsck command is used to check the

consistancy of the file system, and optionally,

repair it.

Page 15: 11 linux filesystem copy

Using the fsck Command• Usage:fsck [-fp] [-b superblock ] device

• -f – Force FS check. When the superblock indicates the FS state is clean, fsck exits automatically. Use this option to force fsck check.

• -p – Fix file system inconsistancies automatically (rather then interactivly asking for intervention).

• Device – Logical device name or volume label.

Page 16: 11 linux filesystem copy

Using the fsck Command# fsck -f /dev/hda1fsck 1.32 (09-Nov-2002)e2fsck 1.32 (09-Nov-2002)Pass 1: Checking inodes, blocks, and sizesPass 2: Checking directory structurePass 3: Checking directory connectivityPass 4: Checking reference countsPass 5: Checking group summary information/boot: 35/26520 files (2.9% non-contiguous), 12575/105808 blocks

Page 17: 11 linux filesystem copy

Restoring Damaged Superblock

• Use fsck with -b superblock option to restore damaged superblocks from backup.

• If the superblock of the FS is damaged, there could be no access to data on the FS.

• Ext 3 keeps backups of the Superblock.

• Use mkfs with the -n option to find out the location of the superblock backup.

Page 18: 11 linux filesystem copy

# mkfs -t ext3 -n /dev/hda1

mke2fs 1.32 (09-Nov-2002)

Filesystem label=

...

Superblock backups stored on blocks:

8193, 24577, 40961, 57345, 73729

Superblock Back up Locations

Restoring Damaged Superblock

Page 19: 11 linux filesystem copy

Restoring Damaged Superblock

# fsck -b 8193 /dev/hda1fsck 1.32 (09-Nov-2002)e2fsck 1.32 (09-Nov-2002)/boot was not cleanly unmounted, check forced.Pass 1: Checking inodes, blocks, and sizes...Pass 5: Checking group summary information /boot: ***** FILE SYSTEM WAS MODIFIED *****/boot: 35/26520 files (2.9% non-contiguous), 12575/105808 blocks

• Use the information gained by the mkfs command to salvage the FS superblock:

Page 20: 11 linux filesystem copy

Mounting File Systems

• In order to make the file system available for use, the file system must be mounted.

• Use a directory as a mount point, to connect the file system about to be mounted to the file system tree, starting from root (/).

• Each directory can be used to mount one file system at a time.

• A directory that is being used can not serve as a mount point.

Page 21: 11 linux filesystem copy

Mouting File Systems

/

usr

home

etc

local

hda1

bin

sbin

lib

hdb1

bin

sbin

Page 22: 11 linux filesystem copy

The Mount Command

• Use the mount command in order to make FS available.

• Syntax:mount -t type -o options

logical_device mount_point

• Example:

# mount -t ext3 -o noatime

/dev/hdb1 /usr/local

Page 23: 11 linux filesystem copy

The Mount Command

• -t – file system type. Local file systems could be: Ext 2 (default) Ext 3 msdos – FAT 16 FS vfat – FAT 32 FS ntfs - Windows NT

Page 24: 11 linux filesystem copy

The Mount Command

• -o – Mount option. Options could be: ro – read only. rw – read and write. suid/nosuid – allow/deny suid bit to take effect. exec/noexec – permit/deny the execution

of binaries. noatime – do not update file access time

(makes FS much faster).

Page 25: 11 linux filesystem copy

The Mount Command

• logical_device – this could be either a logical

device name like: dev/hdb1

or, a volume label like: LABEL=local

• mount_point – A directory that would serve as the

mount point for the file system.

Page 26: 11 linux filesystem copy

The /etc/fstab File

• The /etc/fstab file is used to mount FS

automatically at boot time or to make the

mounting of frequently mounted FS easier.

• The /etc/fstab is created during system

installation and should be edited manually to

include filesystems needed to be available when

system starts.

Page 27: 11 linux filesystem copy

The /etc/fstab File

LABEL=/ / ext3 defaults 1 1LABEL=/boot /boot ext3 defaults 1 2none /dev/pts devpts gid=5,mode=620 0 0none /proc proc defaults 0 0/dev/hda3 swap swap defaults 0 0

/etc/fstab file structure

Page 28: 11 linux filesystem copy

The /etc/fstab File

• Device to Mount – Logical device name or Volume

Label of the device to be mounted.

• Mount Point – The directory to be the mount point

of the file system.

• File System Type – The type of te file system to be

mounted.

Page 29: 11 linux filesystem copy

The /etc/fstab File

• Mount Options – options should be used while working with the file system (defaults = rw, suid, exec, auto, nouser, async).

• FS Backup – is used by the dump tool to decide which FS needs to be backed up. Accepted values are 0 for no backup, or 1 indicating this file system needs to be backed up.

Page 30: 11 linux filesystem copy

The /etc/fstab File• FS Check Pass – the order by which file systems

needs to be checked before being mounted. Acceptable values are 1 to 9.– File systems are being checked according to the order

starting with 1 ending with 9. File systems with FS check pass 1 are being checked

one after the other, while file systems with FS check pass 2 and up are being checked in parallel.

Page 31: 11 linux filesystem copy

The /etc/fstab File

fsck will try and correct any error it encountered which does not require changes to the file system.

If the error requires changes to the file system, the system drops to single user mode and fsck must be run manually.

Page 32: 11 linux filesystem copy

The /etc/fstab File and mount

• Upon writing an incomplete mount command, mount will try and get the missing information from /etc/fstab

• Use the mount -a command to mount all local file

systems listed in /etc/fstab (excpet those

indicating noauto in the mount options).

Page 33: 11 linux filesystem copy

/etc/mtab File

• The /etc/mtab file contains information about all mounted file systems.

• The /etc/mtab file is dynamically changed by the system and should not be edited manually.

Page 34: 11 linux filesystem copy

/etc/mtab File

# cat /etc/mtab

/dev/hda2 / ext3 rw 0 0

none /proc proc rw 0 0

none /dev/pts devpts rw,gid=5,mode=620 0 0

usbdevfs /proc/bus/usb usbdevfs rw 0 0

/dev/hda1 /boot ext3 rw 0 0

none /dev/shm tmpfs rw 0 0

Example of/etc/mtab file:

Page 35: 11 linux filesystem copy

The umount Command

• Use the umount command to make file systems unavailable.

• Command usage: umount dir | device

• Use either mount point or logical device name to

make a file system unavailable.

Page 36: 11 linux filesystem copy

The umount Command• File systems could not be made unavailable if

resources on that file system is being used.

# cd /boot

# umount /boot

umount: /boot: device is busy

• Use fuser -v -m logical_device to check

which processes are using the file system.

Page 37: 11 linux filesystem copy

The umount Command

#fuser -v -m /dev/hda1

USER PID ACCESS COMMAND

/dev/hda1 root 2471 f.... vi

• Example:

Page 38: 11 linux filesystem copy

The umount Command

# fuser -k -m /dev/hda1

/dev/hda1: 2471

• Use fuser -k -m device to kill processes

making use of the file system.