一 Linux磁盘管理
识别硬盘 /dev/sd#
标记不同的硬盘设备 /dev/sd[a-]
标记同一设备上的不同分区 /dev/sd[a-z][1-]
设备文件 特殊文件
设备号
major,minor
major 设备类型
minor 同一类型下的不同设备
块设备 标识为b 随机访问设备
字符设备 标记为c 线性设备
GPT
分区,分隔存储空间为多个小的空间,每个空间可独立使用文件系统
分区工具
fdisk
parted
sfdisk
fdisk 最多支持在一块硬盘上的15个分区
fdisk -l
让内核重读磁盘分区表
partprobe [DEVICE ]
partx
partx -a -n 4:5 /dev/sda
kpartx
kpartx -af /dev/sda
fdisk -l fdisk /devsdb
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x694b74e6
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
二 Linux 文件系统管理
mke2fs [OPTION] ....device
mke2fs - create an ext2/ext3/ext4 filesystem
-t {etx2|etx3|etx4}
-b {1024|2048|4096}
-L 'LABEL'
-j mke2fs -t ext3
-i # bytes-per-inode Specify the bytes/inode ratio
-N #
-m # reserved-blocks-percentage 预留磁盘空间占据多大百分比的空间为管理后期使用
-O FEATURE [] feature[,...] Create a filesystem with the given features (filesystem options) 开启特性
-O ^FEATURE [] 关闭特性
man tune2fs
tune2fs -O [^]feature[,...]
mke2fs -t ext4 -b 4096 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
mke2fs -L 'test1' /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=test1
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成
blkid /dev/sdb1
/dev/sdb1: LABEL="test1" UUID="c39d7e87-cb61-43c9-94bf-cc0f12310787" TYPE="ext2"
当执行mke2fs 不带-t ext4 参数时,默认文件系统为ext2
mke2fs -t ext4 -b 4096 -L 'test1' /dev/sdb1
文件系统属性查看及调整工具
e2label 管理卷标
e2label /dev/sda1 查看卷标
e2label /dev/sda1 LABEL 设定卷标
e2label /dev/sdb1
test1
e2label /dev/sdb1 test2 e2label /dev/sdb1
test2
tune2fs 显示ext系列文件系统的属性或调整其属性
-l 列表,显示超级块信息(显示整个文件系统属性及布局等信息)
-L 卷标
-m # 调整预留给管理员的管理空间百分比
-j 将ext2 升级到 ext3
-O FEATURE 启用或关闭属性(^FEATURE 关闭特性)
-o 文件系统默认挂载选项的开启或关闭
tune2fs -o acl /dev/sda1
dumpe2fs
-h 仅显示超级块信息
tune2fs -l /dev/sdb1
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: test2
Last mounted on: <not available>
Filesystem UUID: c39d7e87-cb61-43c9-94bf-cc0f12310787
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 655360
Block count: 2621440
Reserved block count: 131072
Free blocks: 2574545
Free inodes: 655349
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 639
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Sun Sep 6 17:16:58 2015
Last mount time: n/a
Last write time: Sun Sep 6 17:18:08 2015
Mount count: 0
Maximum mount count: -1
Last checked: Sun Sep 6 17:16:58 2015
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Default directory hash: half_md4
Directory Hash Seed: a17cf0ef-10c9-47b6-8d41-d79d154d0b4d
blkid
文件系统检测工具
blkid /dev/sdb1
/dev/sdb1: LABEL="test2" UUID="c39d7e87-cb61-43c9-94bf-cc0f12310787" TYPE="ext4"
fsck
fsck -t type
-a 自动修复错误
-r 交互式修复错误
-f 强制检测
fsck.type
e2fsck
-y 自动回答 yes
-f 强制检测
三 文件系统的挂载和使用
kernel-->rootfs(分区)
rootfs分区
bin sbin etc lib lib64 dev tmp proc sys
/sbin/init cenos6
/sbin/systemd cenos7
将额外文件系统与根文件系统与现存的目录建立起关联关系,进而使得此目录做为其它文件系统访问入口的行为,称为挂载
解除关系的过程 卸载
挂载点 mount print 设备挂载至目录
挂载点在挂载之后,其内部原有的文件会被隐藏, 建义使用空目录为挂载点
挂载方法
mount 通过读到 /etc/mtab 文件来赤示当前系统中所有已挂载的设备
mount -a 挂载/etc/fstab 文件中的所有支持的自动挂载的文件系统
mount [option] [-o options] DEVICE MOUNT_POINT
[options] 命令选项
[-o options] 挂载选项
DEVICE 要挂载的设备
1.设备文件 例 /dev/sda4
2.卷标 -L 'LABEL'
3.UUID -U 'UUID'
4. 伪文件系统
MOUNT_POINT 挂载点
常用选项
-t type 文件系统类型
-r 以只识方式挂载此文件系统
-w 以读写方式挂载
-n 每个文件系统挂载时会自动更新/etc/mtab文件,-n禁用此功能
如果想查看挂载的所有文件系统 cat /proc/mounts
-a 自动挂载所有支持自动挂载的设备
-B 绑定目录至另一个目录上
-o 挂载选项
async 异步模式
sync 同步模式
atime 更新访问时间戳
noatime 不更新访问时间戳
diratime 更新目录访问时间戳
nodiratime 不更新目录访问时间戳
auto 自动挂载
noaut 不自动挂载
exec 允许执行此文件系统上应用程序
noexec 不允许执行此文件系统上应用程序
dev 支持在此设备上使用设备文件
nodev 不支持在此设备上使用设备文件
suid
nosuid
remount 重新挂载
ro
rw
user 允许普通用户挂载此高备
nouser 不允许普通用户挂载此高备
acl
unmount 取消挂载
fuser 查看目录下 有哪些在使用
-v 查看挂载点正在使用的进程
-km 强制结束正在使用的进程
mount /dev/sdb1 /mydata mount -L 'test2' /mydata mount -U 'c39d7e87-cb61-43c9-94bf-cc0f12310787' /mydata umount /mydata
交换分区
free -m 查看物理内存和交换分区的使用状态
-m MB
-g GB
mkswap 创建交换分区
mkswap [option] DEVICE
-L 'LABEL'
swapon DEVICE 激活交换分区
-a 激活全部交换分区
-p PRIORITY 设定交换分区的优先级
swapoff DEVICE 关闭交换分区
-a 关闭全部交换分区
文件系统等空间占用信息的查看工具
df disk free
-h, --human-readable
-i, --inodes
-P, --portability use the POSIX output format
du disk usage
-s, --summarize
-h, --human-readable
free -m
total used free shared buff/cache available
Mem: 1826 602 715 9 509 1029
Swap: 2047 0 2047
mkswap /dev/sdb2
正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=3a31785b-303c-4506-a7a3-d902c3024204
free -m
total used free shared buff/cache available
Mem: 1826 602 715 9 509 1029
Swap: 2047 0 2047
swapon /dev/sdb2
free -m
total used free shared buff/cache available
Mem: 1826 603 714 9 509 1028
Swap: 4095 0 4095
swapoff /dev/sdb2
free -m
total used free shared buff/cache available
Mem: 1826 602 714 9 509 1029
Swap: 2047 0 2047
文件系统挂载 相关的配置文件
/etc/fstab 每行定义一个文件系统
cat /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0 UUID=51d6b7a7-29f9-4a59-af18-3a746ca553e4 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0
要挂载的设备或文件系统 挂载点 文件系类型 挂载选项 转储频率 自检次序
要挂载的设备或文件系统 设备文件 LABEL= UUID= 伪言语件系统
挂载选项 defaults
转储频率 备份的频率
0 不转储
1 每天转储
2 每隔一天转储
自检次序
0 不自检
1 首先自检,通常只有/ 根才为1
2
vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Sep 2 17:59:33 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0 UUID=c7be76f0-7549-4b55-987b-f02072487405 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 /mydata ext4 defaults 0 0
四 文件系统的链接文件
硬链接 两个路径指向同一个inode
不能对目录进行创建
不能跨分区
指向同一个inode 的多个不同路径,创建文件的硬链接会 增加inode 的引用记数,删除硬 链接仅是删除其中一个访问路径,直到全部路径删除 ,才会真正删除
符号链接 链接文件的数据指向另一个文件路径
可以对目录进行
可以跨分区
指向的是另一个文件路径,而非inode
文件大小是引用的大小,不是源文件大小
对文件创建符号链接不会增加其引用记数,删除源文件,符号链接无法使用
ln
ln fstabe fstab.h 硬链接
ln -s fstabe fstab.s 符号链接
-v 显示详细创建过程
练习
3、创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录
fdisk /devsdb
n
p
1
2048
+10G
w
mke2fs -t ext4 -b 4096 -L 'test2' /dev/sdb1
vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Sep 2 17:59:33 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0 UUID=c7be76f0-7549-4b55-987b-f02072487405 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 /mydata ext4 defaults 0 0