磁盘及文件系统管理
终端类型:
console:控制台
pty:物理终端 (VGA)
tty#:虚拟终端 (VGA)
ttyS#:串行终端
pts/#:伪终端
ln [-s -v] SRC DEST
硬链接:多个路径的链接到同一个文件,且显示指向次数
1、只能对文件创建,不能应用于目录;
2、不能跨文件系统;
3、创建硬链接会增加文件被链接的次数;
符号链接:软链接
1、可应用于目录;
2、可以跨文件系统;
3、不会增加被链接文件的链接次数;
4、其大小为指定的路径所包含的字符个数;
链接
设备文件:
b: 按块为单位,随机访问的设备;
c:按字符为单位,线性设备;
b: 硬盘
c: 键盘
/dev
主设备号 (major number)
标识设备类型
次设备号 (minor number)
标识同一种类型中不同设备
mknod 用于创建Linux中的字符设备文件和块设备文件
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-mMODE
硬盘设备的设备文件名:
IDE, ATA:hd
SATA:sd
SCSI: sd
USB: sd
a,b,c,...来区别同一种类型下的不同设备
IDE:
第一个IDE口:主、从
/dev/hda,/dev/hdb
第二个IDE口:主、从
/dev/hdc,/dev/hdd
sda, sdb, sdc, ...
hda:
hda1:第一个主分区
hda2:
hda3:
hda4:
hda5:第一个逻辑分区
hda6:第二个逻辑分区
查看当前系统识别了几块硬盘:
fdisk -l [/dev/to/some_device_file]
管理磁盘分区:fdisk
英文原义:format disks/partitions
执行权限:root
fdisk /dev/sda
p: 显示当前硬件的分区,包括没保存的改动
n: 创建新分区
e:扩展分区
p:主分区
d: 删除一个分区
w: 保存退出
q: 不保存退出
t: 修改分区类型
L:
l: 显示所支持的所有类型
Linux支持的文件系统: 一个分区是一个独立的文件系统
partprobe
文件系统访问控制列表
setfacl
-bRemove all
-m
-x
文件系统管理:重新创建文件系统会损坏原有文件
mkfs: make file system
-t FSTYPE
mkfs -t ext2 = mkfs.ext2
mkfs -t ext3 = mkfs.ext3
mke2fs: 专门管理ext系列文件
-j: 创建ext3类型文件系统
-b [BLOCK_SIZE]: 指定块大小,默认为4096;可用取值为1024、2048或4096;
-L LABEL:指定分区卷标;
-m #: 指定预留给超级用户的块数百分比
-i #: 用于指定为多少字节的空间创建一个inode,默认为8192;
这里给出的数值应该为块大小的2^n倍;
-N #: 指定inode个数;
-F: 强制创建文件系统;
-E: 用户指定额外文件系统属性;
blkid: 查询或查看磁盘设备的相关属性
UUID
TYPE
LABEL
e2label: 用于查看或定义卷标
e2label 设备文件 卷标: 设定卷标
tune2fs: 调整文件系统的相关属性 英文:tunable ext2 filesystem
-j: 不损害原有数据,将ext2升级为ext3;
-L LABEL: 设定或修改卷标;
-m #: 调整预留百分比;
-r #: 指定预留块数;
-o: 设定默认挂载选项;
acl
-c #:指定挂载次数达到#次之后进行自检,0或-1表关闭此功能;
-i #: 每挂载使用多少天后进行自检;0或-1表示关闭此功能;
-l: 显示超级块中的信息;
dumpe2fs: 显示文件属性信息 英文:dump ext2 filesystem
-h: 只显示超级块中的信息
fsck: 检查并修复Linux文件系统 英文:filesystem check
-t FSTYPE: 指定文件系统类型
-a: 自动修复
e2fsck: 专用于修复ext2/ext3文件系统 英文: ext2 filesystem check
-f: 强制检查;
-p: 自动修复;
挂载:将新的文件系统关联至当前根文件系统
卸载:将某文件系统与当前根文件系统的关联关系预以移除;
mount 设备 挂载点
设备: 设备文件:/dev/sda5
卷标:LABEL=“”
UUID: UUID=“”
挂载点:目录
要求:
1、此目录没有被其它进程使用;
2、目录得事先存在;
3、目录中的原有的文件将会暂时隐藏;
显示当前系统已经挂载的设备及挂载点
mount [options] [-o options] DEVICE MOUNT_POINT
-a: 表示挂载/etc/fstab文件中定义的所有文件系统
-n: 默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;
使用—n选项意味着挂载设备时,不把信息写入此文件;
-t FSTYPE: 指定正在挂载设备上的文件系统的类型;
不使用此选项时,mount会调用blkid命令获取对应文件系统的类型;
-r: 只读挂载,挂载光盘时常用此选项
-w: 读写挂载
-o: 指定额外的挂载选项,也即指定文件系统启用的属性;
remount: 重新挂载当前文件系统
ro: 挂载为只读 -o ro = -r
rw: 读写挂载 -o rw = -w
acl: 额外访问权限组 -o acl
loop: 挂载光驱等回环设备
mount -o loop /dev/cdrom /mnt/ 挂载光驱
mount -t iso9660 /dev/scd0 /mnt/ 挂载光驱
mount -o loop linux.iso /mnt/ 挂载ISO文件
挂载完成后,要通过挂载点访问对应文件系统上的文件;
umount: 卸载某文件系统
umount 设备 / 挂载点
卸载注意事项: 挂载的设备没有进程使用;
eg1.建一个2G的分区,文件系统为ext2,卷标为DATA,块大小1024,预留管理空间为磁盘分区的8%;挂载至/backup目录,要求使用卷标进行挂载,且在挂载时启动此文件系统上的acl功能;
# mke2fs -L DATA -b 1024 -m 8 /dev/sda7
# mount -o acl LABEL=DATA /backup
# tune2fs -o acl /dev/sda7
# mount LABEL=DATA /backup
eg2.将此文件系统的超级块中的信息中包含了block和inode的行保存至/tmp/partition.txt中;
# tune2fs -l /dev/sdc3 | egrep -i "block|inode" >>/tmp/partition.txt
# dumpe2fs -h /dev/sdc3| egrep -i "block|inode" >>/tmp/partition.txt
eg3.复制/etc目录中的所有文件至此文件系统;而后调整此文件系统类型为ext3,要求不能损坏已经复制过来的文件;
# cp -r /etc/* /backup
# tune2 -j /dev/sda7
eg4.调整其预留百分比为3%;
# tune2fs -m 3 -L DATA /dev/sda7
eg5.以重新挂载的方式挂载此文件系统为不更新访问时间戳,并验正其效果;
# stat /backup/inittab
# cat /backup/inittab
# stat
# mount -o remount,noatime /backup
# cat /backup/inittab
# stat /backup/inittab
eg6.对此文件系统强行做一次检测;
e2fsck -f /dev/sda7
eg7.删除复制而来的所有文件,并将此文件系统重新挂载为同步(sync);而后再次复制/etc目录中的所有文件至此挂载点,体验其性能变化;
# rm -rf /backup/*
# mount -o remount,sync /backup
# cp -r /etc/* /backup
---end---