1、复习本次课程所讲的内容;
创建文件系统
mke2fs [option] …… DEVICE
mke2fs
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L ‘LABEL’
-j = mke2fs -t ext3 开启日志功能
文件系统属性查看及调整工具(ext系统)
e2label 查看或设置卷标
e2label DEVICE [label]
tune2fs
显示ext系统文件系统的属性,或调整其属性
-l 显示超级块中的信息(显示整个文件的属性及布局等相关信息)
-L ‘label’ 设置卷标
-m # 调整预留给管理员的管理空间百分比(默认5%)
-j ext2--> ext3提升,不损害数据
-O 开启过关闭文件系统属性(关闭使用:^属性) 对应: filesystem features 中的属性
-o 文件系统默认挂在选项的启用过关闭 对应:defaultmount options
dumpe2fs
-h 仅显示超级块信息
文件系统检测工具
fsck filesystem check 使用方法类似mkfs
-t type
fsck.type
-a 自动修复错误
-r 交互式修复错误
-f 强制检测
e2fsck 针对ext文件系统专用检测修复工具
-y 自动回答为“yes”
-f force 强制检测
文件系统的挂载和使用
kernel-->rootfs(分区) 内核加载根分区
rootfs分区包含:
bin,sbin,etc,lib,lib64,dev,tmp,porc,sys
文件系统挂载
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,此目录作为其他文件系统访问的入口
卸载:解除关联关系
mount命令
mount [options] [-o optoins] DEVICE MOUNT_POINT
options 命令选项
-o optiongs 挂载选项
DEVICE 可以直接写设备文件 /dev/sda# 、卷标-L "abel" 、-U “UUID"
常用选项:
-t type
-r 以只读方式挂载
-w 以读写方式挂载
-n 跟个文件系统在挂载时都会自动更新/etc/mtab文件 -n用于进制此功能
如果想查看所有挂载的文件系统:cat /porc/mounts
-a 挂载/etc/fstab文件中所有支持自动挂载的文件系统
-B 绑定目录至另一个目录上
-o [options] 挂载选项
async 异步模式
sync 同步模式
atime/noatime (文件atime更新非常频繁,可以关闭掉noatime)
exec/noexec 是否运行执行此文件系统上应用程序
dev/nodev 是否支持在此设备上使用设备文件
suid/nosuid 允许/禁止使用suid
remount 重新挂载
ro 只读挂载
rw 读写挂载
use/nouser 是否允许普通挂载此设备
acl 是否支持此设备上使用facl
卸载命令
umount DEVICE
umount mount_point
查看正在访问指定挂载点的进程
fuser -v mount_point
终止所有正在访问指定的挂载点的进程
fuser -km mount_point
swap 交换分区
free 查看内存和swap使用情况
-m 以MB为单位
-g 以GB为单位
创建交换分区:
mkswap [option] DEVICE
-L LABEL
启用交换分区
swapon [option] [device]
-a 激活所有交换分区
-p priority 设定其优先级
禁用交换分区
swap [option] [DEVICE]
文件系统大、小查看
df disk free
-h 人性化自动换算大小单位
-i inode数量
-P 以posix兼容格式输出
du disk usage
-h human-readable
-s summary
文件系统挂载配置文件 /etc/fstab
要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
挂载选项defaults即可
转储频频率 0不转储 1每天转储 2每一隔天转储 设置0即可
自检次序 0不自检 1首先自检(通常只有/才为1) 设置为0即可
文件系统上的链接文件
硬连接
两个路径指向同一个inode,不能对目录进行,不能跨分区进行,删除硬连接至少删除其中一个访问路径,直至删除最后一个才被彻底删除
软连接
相当于快捷方式,可以针对目录进行,可以跨分区,对文件创建软连接不会增加其引用计数,删除原文件,软连接也就没有什么用了
设置链接
ln [option] SRC DEST
-s symbolic link 软连接
-v verbose
不加选项为硬连接
2、总结整理磁盘管理及文件系统管理中设计的各种命令的使用,并附注一定的示例;
fdisk 命令
[root@localhost ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):
其实fdisk常用的参数:m帮助 n新建分区 d删除分区 p列出个分区 l列出支持的分区类型 t修改分区id q不保存退出 w保存退出
partx 讲分区加载到内核(如果分区后没有被内核识别),可以cat /proc/partitions
[root@localhost ~]# cat /proc/partitions major minor #blocks name 8 0 83886080 sda 8 1 204800 sda1 8 2 20971520 sda2 8 3 20971520 sda3 8 4 1 sda4 8 5 1048576 sda5 8 16 41943040 sdb [root@localhost ~]# partx -a -n 1 /dev/sdb [root@localhost ~]# cat /proc/partitions major minor #blocks name 8 0 83886080 sda 8 1 204800 sda1 8 2 20971520 sda2 8 3 20971520 sda3 8 4 1 sda4 8 5 1048576 sda5 8 16 41943040 sdb 8 17 5253223 sdb1
上面是我们创建了一个/dev/sdb1分区(内核自动识别,手动删除掉以后演示),或者使用[root@localhost ~]# kpartx -af /dev/sdb
格式化文件系统、设置卷标
mkfs 或者 mkfs.type
其实mkfs -t ext4就是调用mkfs.ext4
在做实验的过程中遇到了错误:
[root@localhost ~]# mkfs.ext4 /dev/sdb1 mke2fs 1.41.12 (17-May-2010) /dev/sdb1 is apparently in use by the system; will not make a filesystem here!
解决方法:
[root@localhost ~]# dmsetup status sdb1: 0 10506447 linear [root@localhost ~]# dmsetup remove sdb1 解除绑定
然后就正常了
[root@localhost ~]# mkfs.ext4 -L test /dev/sdb1 mke2fs 1.41.12 (17-May-2010) Filesystem label=test OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 655776 inodes, 2622603 blocks 131130 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2688548864 81 block groups 32768 blocks per group, 32768 fragments per group 8096 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 30 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
可以在格式化的时候指明卷标,不指明也没有关系,可以用其他工具进行修改(不格式化)
e2label tune2fs dumpe2fs 都可以修改
e2label专门用来查看或者修改分区卷标,另外两个工具的功能更多些
[root@localhost ~]# e2label /dev/sdb1 'mytest' [root@localhost ~]# e2label /dev/sdb1 mytest
tune2fs、dumpe2fs 可以显示ext系列文件系统的属性
[root@localhost ~]# tune2fs -l /dev/sdb1 tune2fs 1.41.12 (17-May-2010) Filesystem volume name: mytest Last mounted on: <not available> Filesystem UUID: 18235df4-58e9-49ce-b653-b03833a26a4e Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash ……
[root@localhost ~]# dumpe2fs -h /dev/sdb1 dumpe2fs 1.41.12 (17-May-2010) Filesystem volume name: mytest Last mounted on: <not available> Filesystem UUID: 18235df4-58e9-49ce-b653-b03833a26a4e Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash
tune2fs也能修改分区的卷标
[root@localhost ~]# tune2fs -L testaaa /dev/sdb1 tune2fs 1.41.12 (17-May-2010) [root@localhost ~]# e2label /dev/sdb1 testaaa
fsck 、 e2fsck
[root@localhost ~]# e2fsck /dev/sdb1 e2fsck 1.41.12 (17-May-2010) testaaa: clean, 11/655776 files, 79700/2622603 blocks [root@localhost ~]# fsck -t ext4 /dev/sdb1 fsck from util-linux-ng 2.17.2 e2fsck 1.41.12 (17-May-2010) testaaa: clean, 11/655776 files, 79700/2622603 blocks
fsck filesystem check 使用方法类似mkfs
-t type
fsck.type (fsck.ext3 fsck.ext4)
-a 自动修复错误
-r 交互式修复错误
-f 强制检测
e2fsck 针对ext文件系统专用检测修复工具
-y 自动回答为“yes”
-f force 强制检测
文件系统挂载、卸载 mount
[root@localhost ~]# mount /dev/sdb1 /mnt [root@localhost ~]# mount /dev/sda2 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) /dev/sda3 on /usr type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sdb1 on /mnt type ext4 (rw) [root@localhost ~]# umount /dev/sdb1 [root@localhost ~]# mount /dev/sda2 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) /dev/sda3 on /usr type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
注意在卸载的时候,如果有进程占用磁盘,那么卸载时会出现错误
可以使用fuser -vm DEVICE 进程查看那些进程占用了磁盘
[root@localhost ~]# fuser -vm /dev/sdb1 #查看占用 USER PID ACCESS COMMAND /dev/sdb1: root 2124 ..c.. bash [root@localhost ~]# umount /dev/sdb1 umount: /mnt: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) [root@localhost ~]# fuser -vm /dev/sdb1 USER PID ACCESS COMMAND /dev/sdb1: root 2124 ..c.. bash [root@localhost ~]# fuser -km /dev/sdb1 #结束占用 /dev/sdb1: 2124c [root@localhost ~]# umount /dev/sdb1 [root@localhost ~]#
mkswap swapon swapoff
删除原来的/dev/sdb1,重新划分分区,过程略
[root@localhost ~]# free -m total used free shared buffers cached Mem: 988 143 845 0 17 49 -/+ buffers/cache: 76 912 Swap: 1023 0 1023
目前swap 1G
[root@localhost ~]# mkswap /dev/sdb1 Setting up swapspace version 1, size = 5253216 KiB no label, UUID=c38f12b3-a796-4d8e-ba8c-6b31c0c0b0d8 [root@localhost ~]# swapon /dev/sdb1 [root@localhost ~]# free -m total used free shared buffers cached Mem: 988 147 841 0 17 49 -/+ buffers/cache: 80 908 Swap: 6154 0 6154 [root@localhost ~]#
可以看到swap分区变成了6154M
卸载也比较简单,swap DEVICE 即可
[root@localhost ~]# swapoff /dev/sdb1 [root@localhost ~]# free -m total used free shared buffers cached Mem: 988 143 845 0 17 49 -/+ buffers/cache: 76 912 Swap: 1023 0 1023 [root@localhost ~]#
若想永久生效需修改/etc/fstab
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="c38f12b3-a796-4d8e-ba8c-6b31c0c0b0d8" TYPE="swap"
[root@localhost ~]#
记住/dev/sdb1的UUID 如下格式添加到/etc/fstab
UUID=c38f12b3-a796-4d8e-ba8c-6b31c0c0b0d8 swap swap defaults 0 0
文件大小查看 df (disk free) du(disk usage)
[root@localhost ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 ext4 20G 422M 19G 3% / tmpfs tmpfs 495M 0 495M 0% /dev/shm /dev/sda1 ext4 190M 36M 145M 20% /boot /dev/sda3 ext4 20G 3.0G 16G 17% /usr
[root@localhost ~]# du -sh /usr 3.0G/usr
软连接&硬连接
[root@localhost tmp]# ln fstab fstab.hl [root@localhost tmp]# ln -s fstab fstab.sl [root@localhost tmp]# ll -i total 32 917550 -rw-r--r-- 2 root root 899 Sep 2 17:19 fstab 917550 -rw-r--r-- 2 root root 899 Sep 2 17:19 fstab.hl 917506 lrwxrwxrwx 1 root root 5 Sep 6 18:47 fstab.sl -> fstab 917553 -rw-r--r-- 1 root root 19697 Sep 6 10:30 functions 917552 -rw------- 1 root root 771 Sep 6 10:15 grub.conf
可以看出硬连接的引用数增加,并且inode号相同,如果删除原文件,硬连接可以继续使用,软连接则不可用
3、创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录
[root@localhost tmp]# fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n #新建分区 Command action l logical (5 or over) p primary partition (1-4) l #选择逻辑分区 First cylinder (1961-5221, default 1961): Using default value 1961 Last cylinder, +cylinders or +size{K,M,G} (1961-5221, default 5221): +10G #指明分区大小为10G Command (m for help): w #保存退出 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
[root@localhost tmp]# mkfs.ext4 /dev/sdb5 [root@localhost tmp]# mount /dev/sdb5 /mydata/ [root@localhost tmp]# mount /dev/sda2 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) /dev/sda3 on /usr type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sdb5 on /mydata type ext4 (rw) [root@localhost tmp]# blkid /dev/sdb5 /dev/sdb5: UUID="d5a3054c-f00d-4be1-a286-fa0037671bd2" TYPE="ext4" [root@localhost tmp]# tail -1 /etc/fstab #修改/etc/fstab永久生效 UUID=d5a3054c-f00d-4be1-a286-fa0037671bd2 /mydata ext4 defaults 0 0