4.5 磁盘格式化上
[root@hyc-01-01 ~]# cat /etc/filesystems 查看 linux 支持的分区文件系统
Xfs centos7 开始成为默认的文件系统格式
ext4 ext 文件系统格式, 2/3/4 为版本号
- ext3
- ext2
- nodev proc
- nodev devpts
- iso9660
- vfat
- hfs
- hfsplus
- *
- [root@hyc-01-01 ~]# mount 查看 linux 各个分区的文件系统格式
- ...
- /dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
- selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
- ...
- /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
- tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=100816k,mode=700)
swap 分区为 swap 分区格式, 是 swap 分区自有的特殊格式
[root@hyc-01-01 ~]# fdisk -l 查看当前系统分区
磁盘 /dev/sda:21.5 GB, 21474836480 字节, 41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑 / 物理):512 字节 / 512 字节
I/O 大小(最小 / 最佳):512 字节 / 512 字节
磁盘标签类型: dos
磁盘标识符: 0x000c9c2f
设备 Boot Start End Blocks Id System
- /dev/sda1 * 2048 411647 204800 83 Linux
- /dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris
- /dev/sda3 4605952 41943039 18668544 83 Linux
磁盘 /dev/sdb:10.7 GB, 10737418240 字节, 20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑 / 物理):512 字节 / 512 字节
I/O 大小(最小 / 最佳):512 字节 / 512 字节
磁盘标签类型: dos
磁盘标识符: 0x9856bc3f
设备 Boot Start End Blocks Id System
- /dev/sdb2 4196352 8390655 2097152 83 Linux
- /dev/sdb3 8390656 10487807 1048576 83 Linux
- /dev/sdb4 10487808 18876415 4194304 5 Extended
- /dev/sdb5 12589056 14686207 1048576 83 Linux
- [root@hyc-01-01 ~]# du -sh test.txt
0 test.txt 当前文件没有任何内容, 不占用任何块
- [root@hyc-01-01 ~]# echo 1> test.txt
- [root@hyc-01-01 ~]# ls -lh test.txt
-rw-r--r--. 1 root root 2 6 月 17 11:50 test.txt 文件内容大小为 2 字节
[root@hyc-01-01 ~]# du -sh test.txt
4.0K test.txt 不管文件大小, 至少占用一个块的大小
[root@hyc-01-01 ~]# du -sb test.txt
2 test.txt 使用 - b 选项可以查看文件的真实大小
- [root@hyc-01-01 ~]# mke2fs -t ext4 /dev/sdb2 将分区格式化为 ext4 文件格式
- [root@hyc-01-01 ~]# mkfs.ext4 /dev/sdb2 同上
- [root@hyc-01-01 ~]# mke2fs -t xfs /dev/sdb2
- mke2fs 1.42.9 (28-Dec-2013)
Your mke2fs.conf file does not define the xfs filesystem type.
Aborting... mke2fs 工具无法将分区格式化为 xfs(不支持的格式)
[root@hyc-01-01 ~]# mkfs.xfs /dev/sdb2 提示分区已经被格式化为 ext4, 此时需要 - f 强制
mkfs.xfs: /dev/sdb2 appears to contain an existing filesystem (ext4).
mkfs.xfs: Use the -f option to force overwrite.
- [root@hyc-01-01 ~]# mkfs.xfs -f /dev/sdb2
- meta-data=/dev/sdb2 isize=512 agcount=4, agsize=131072 blks
- = sectsz=512 attr=2, projid32bit=1
- = crc=1 finobt=0, sparse=0
- data = bsize=4096 blocks=524288, imaxpct=25
- = sunit=0 swidth=0 blks
- naming =version 2 bsize=4096 ascii-ci=0 ftype=1
- log =internal log bsize=4096 blocks=2560, version=2
- = sectsz=512 sunit=0 blks, lazy-count=1
- realtime =none extsz=4096 blocks=0, rtextents=0
- [root@hyc-01-01 ~]# mount 由于 / dev/sdb2 仍未被挂载, 所以 mount 无法查看到 sdb2
- [root@hyc-01-01 ~]# blkid 查看分区
- /dev/sda1: UUID="880a750a-458a-4fec-b40c-0028e23c7d4a" TYPE="xfs"
- /dev/sda2: UUID="d9c60f63-2e5b-455a-b0bb-93390ba4baf4" TYPE="swap"
- /dev/sda3: UUID="0762ca41-f070-4c2e-a532-df452b3b39a8" TYPE="xfs"
- /dev/sdb2: UUID="df0dafa6-e15a-4d5e-93e9-6b047baf8f92" TYPE="xfs"
- [root@hyc-01-01 ~]# blkid /dev/sdb2 查看指定分区
- /dev/sdb2: UUID="df0dafa6-e15a-4d5e-93e9-6b047baf8f92" TYPE="xfs"
4.6 磁盘格式化 下
- [root@hyc-01-01 ~]# mke2fs -t ext4 -b 2048 /dev/sdb2 指定块大小格式化
- [root@hyc-01-01 ~]# mkfs.xfs -b size=2048 -f /dev/sdb2
- meta-data=/dev/sdb2 isize=512 agcount=4, agsize=262144 blks
- = sectsz=512 attr=2, projid32bit=1
- = crc=1 finobt=0, sparse=0
- data = bsize=2048 blocks=1048576, imaxpct=25
- = sunit=0 swidth=0 blks
- naming =version 2 bsize=4096 ascii-ci=0 ftype=1
- log =internal log bsize=2048 blocks=5120, version=2
- = sectsz=512 sunit=0 blks, lazy-count=1
- realtime =none extsz=4096 blocks=0, rtextents=0
- [root@hyc-01-01 ~]# mke2fs -t ext4 -b 8192 /dev/sdb2
Warning: blocksize 8192 not usable on most systems.
- mke2fs 1.42.9 (28-Dec-2013)
- mke2fs: 8192-byte blocks too big for system (max 4096)
无论如何也要继续? (y,n) 指定的块大小太大时会出现提示
如果磁盘存储的是视频, 音乐等较大的文件则可以将块大小设置大, 适当的块大小可以增加读写速度
Warning: 8192-byte blocks too big for system (max 4096), forced to continue
warning: 32 blocks unused.
文件系统标签 =
OS type: Linux
块大小 = 8192 (log=3)
分块大小 = 8192 (log=3)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 262112 blocks
13105 blocks (5.00%) reserved for the super user 格式化时有 5% 的空间预留给 root 用户
第一个数据块 = 0
- Maximum filesystem blocks=268402688
- 4 block groups
65528 blocks per group, 65528 fragments per group
32768 inodes per group
Superblock backups stored on blocks:
65528, 196584
Allocating group tables: 完成
正在写入 inode 表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
- [root@hyc-01-01 ~]# mke2fs -m 2 /dev/sdb2 格式化时预留 2% 的空间给 root(支持小数写法)
- [root@hyc-01-01 ~]# blkid /dev/sdb2 不指定文件系统格式则默认格式化为 ext2
- /dev/sdb2: UUID="ede8db35-d323-4641-babe-ee876d66952b" TYPE="ext2"
- [root@hyc-01-01 ~]# mkfs.ext4 -m 2 /dev/sdb2
- mke2fs 1.42.9 (28-Dec-2013)
文件系统标签 =
OS type: Linux
块大小 = 4096 (log=2)
分块大小 = 4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
10485 blocks (2.00%) reserved for the super user
第一个数据块 = 0
- Maximum filesystem blocks=536870912
- 16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成
正在写入 inode 表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
- [root@hyc-01-01 ~]# mkfs.ext4 -m 0.1 /dev/sdb2
- mke2fs 1.42.9 (28-Dec-2013)
文件系统标签 =
OS type: Linux
块大小 = 4096 (log=2) 每个块为 4K
分块大小 = 4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks 每 4 个块对应一个 inode 号, 即每 16k 对应一个 inode 号
524 blocks (0.10%) reserved for the super user
第一个数据块 = 0
- Maximum filesystem blocks=536870912
- 16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成
正在写入 inode 表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
- [root@hyc-01-01 ~]# mkfs.xfs -m 2 /dev/sdb2 xfs 文件格式不支持指定预留给 root 的空间大小
- unknown option -m 2
- Usage: mkfs.xfs
- /* blocksize */ [-b log=n|size=num]
- /* metadata */ [-m crc=0|1,finobt=0|1,uuid=xxx]
- /* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num,
- (sunit=value,swidth=value|su=num,sw=num|noalign),
- sectlog=n|sectsize=num
- /* force overwrite */ [-f]
- /* inode size */ [-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,
- projid32bit=0|1]
- /* no discard */ [-K]
- /* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n
- sunit=value|su=num,sectlog=n|sectsize=num,
- lazy-count=0|1]
- /* label */ [-L label (maximum 12 characters)]
- /* naming */ [-n log=n|size=num,version=2|ci,ftype=0|1]
- /* no-op info only */ [-N]
- /* prototype file */ [-p fname]
- /* quiet */ [-q]
- /* realtime subvol */ [-r extsize=num,size=num,rtdev=xxx]
- /* sectorsize */ [-s log=n|size=num]
- /* version */ [-V]
- devicename
- <devicename> is required unless -d name=xxx is given.
- <num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),
xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).
- <value> is xxx (512 byte blocks).
- [root@hyc-01-01 ~]# mke2fs -i 8192 -t ext4 /dev/sdb2 指定每个 inode 号对应的空间大小(8K)
- mke2fs 1.42.9 (28-Dec-2013)
文件系统标签 =
OS type: Linux
块大小 = 4096 (log=2)
分块大小 = 4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 524288 blocks 每 2 个块对应一个 inode 号
26214 blocks (5.00%) reserved for the super user
第一个数据块 = 0
- ...
- [root@hyc-01-01 ~]# mkfs.ext4 -i 4096 -t ext4 /dev/sdb2 同上, xfs 不支持 - i
至少为一个块对应一个 inode;
mkfs.xfs 基本没有什么选项或特殊用法, 直接跟分区即可;
4.7 磁盘挂载 上
磁盘 /dev/sdb:10.7 GB, 10737418240 字节, 20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑 / 物理):512 字节 / 512 字节
I/O 大小(最小 / 最佳):512 字节 / 512 字节
磁盘标签类型: dos
磁盘标识符: 0x9856bc3f
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):q
[root@hyc-01-01 ~]# mkfs.xfs /dev/sdb
mkfs.xfs: /dev/sdb appears to contain a partition table (dos). 提示已经包含了分区表
mkfs.xfs: Use the -f option to force overwrite.
- [root@hyc-01-01 ~]# mkfs.xfs -f /dev/sdb 强制执行继续
- meta-data=/dev/sdb isize=512 agcount=4, agsize=655360 blks
- = sectsz=512 attr=2, projid32bit=1
- = crc=1 finobt=0, sparse=0
- data = bsize=4096 blocks=2621440, imaxpct=25
- = sunit=0 swidth=0 blks
- naming =version 2 bsize=4096 ascii-ci=0 ftype=1
- log =internal log bsize=4096 blocks=2560, version=2
- = sectsz=512 sunit=0 blks, lazy-count=1
- realtime =none extsz=4096 blocks=0, rtextents=0
- [root@hyc-01-01 ~]# blkid /dev/sdb
- /dev/sdb: UUID="282adc7f-40c8-4dad-98e6-11829c289fe2" TYPE="xfs"
- [root@hyc-01-01 ~]# mount /dev/sdb /mnt 挂载分区到目录下
- [root@hyc-01-01 ~]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
/dev/sda3 18G 982M 17G 6% /
devtmpfs 483M 0 483M 0% /dev
- tmpfs 493M 0 493M 0% /dev/shm
- tmpfs 493M 6.8M 486M 2% /run
- tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/sdb 10G 33M 10G 1% /mnt
- [root@hyc-01-01 ~]# touch /mnt/2.txt 在 / mnt 目录下写入文件和目录
- [root@hyc-01-01 ~]# mkdir /mnt/3
- [root@hyc-01-01 ~]# ls /mnt
- 2.txt 3
- [root@hyc-01-01 ~]# cd /mnt
- [root@hyc-01-01 mnt]# umount /dev/sdb 当前用户正在 mnt 目录下导致无法正常卸载分区
umount: /mnt: 目标忙.
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
- [root@hyc-01-01 mnt]# cd ..
- [root@hyc-01-01 /]# umount /dev/sdb 卸载成功
- [root@hyc-01-01 /]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
/dev/sda3 18G 982M 17G 6% /
devtmpfs 483M 0 483M 0% /dev
- tmpfs 493M 0 493M 0% /dev/shm
- tmpfs 493M 6.8M 486M 2% /run
- tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
- tmpfs 99M 0 99M 0% /run/user/0
- [root@hyc-01-01 mnt]# umount /mnt 无法卸载, umount 后可跟要卸载的分区或要卸载分区的目录
umount: /mnt: 目标忙.
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
- [root@hyc-01-01 mnt]# umount -l /mnt 强制卸载
- [root@hyc-01-01 mnt]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
/dev/sda3 18G 982M 17G 6% /
devtmpfs 483M 0 483M 0% /dev
- tmpfs 493M 0 493M 0% /dev/shm
- tmpfs 493M 6.8M 486M 2% /run
- tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
4.8 磁盘挂载 下
[root@hyc-01-01 mnt]# man mount
defaults 可读可写(rw), 可以设置 suid(suid), 挂载的分区下的文件可执行(exec/noexec), 自动挂载(auto/noauto), 不允许普通用户挂载(nouser/user), 每过一段时间同步内存与磁盘的数据, 不会实时同步(async/sync)
-o 挂载磁盘时添加其他可选项, 包括 rw(可读可写),ro(只读),nouser(仅 root 用户可以挂载),async/sync(是否实时同步内存数据到磁盘)等
- [root@hyc-01-01 mnt]# mount -o remount /dev/sdb 重新挂载
- [root@hyc-01-01 mnt]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
/dev/sda3 18G 983M 17G 6% /
devtmpfs 483M 0 483M 0% /dev
- tmpfs 493M 0 493M 0% /dev/shm
- tmpfs 493M 6.8M 486M 2% /run
- tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/sdb 10G 33M 10G 1% /mnt
[root@hyc-01-01 mnt]# mount -o remount,rw /dev/sdb 重挂载 sdb 并可读可写
配置文件 / etc/fstab
定义系统启动时默认挂载的目录
- [root@hyc-01-01 mnt]# cat /etc/fstab
- #
- # /etc/fstab
- # Created by anaconda on Fri May 25 04:48:53 2018
- #
- # 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
- #
UUID=0762ca41-f070-4c2e-a532-df452b3b39a8 / xfs defaults 0 0
UUID=880a750a-458a-4fec-b40c-0028e23c7d4a /boot xfs defaults 0 0
UUID=d9c60f63-2e5b-455a-b0bb-93390ba4baf4 swap swap defaults 0 0
第一列: 要被挂载的分区, 可以写 UUID 或分区名称 / dev/sdb(使用 blkid 命令可以查看分区的 UUID)
- [root@hyc-01-01 mnt]# mount UUID="282adc7f-40c8-4dad-98e6-11829c289fe2" /mnt
- [root@hyc-01-01 mnt]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
/dev/sda3 18G 982M 17G 6% /
devtmpfs 483M 0 483M 0% /dev
- tmpfs 493M 0 493M 0% /dev/shm
- tmpfs 493M 6.8M 486M 2% /run
- tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/sdb 10G 33M 10G 1% /mnt 挂载成功
第二列: 挂载点(目录)
第三列: 挂载选项(rw,sync,nouser...), 默认 defaults
第四列: 是否备份文件系统, 0 则不备份(dump), 一般设置为 0, 该选项作用不大
第五列: 设置优先级(0/1/2), 检测磁盘的问题和错误, 数字越小级别越高, 一般根文件系统设置为 1, 其他的设为 2, 设为 0 则不检测
[root@hyc-01-01 mnt]# man fstab 查看某配置文件用法(不要写 / etc/fstab)
4.9 手动增加 swap 空间
一般 swap 空间最大设 8G
1 在文件系统中虚拟磁盘
[root@hyc-01-01 mnt]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
dd 操作磁盘命令; if 指定从哪里读;/dev/zero 是 linux 内核中的造 0 器, 可以产生源源不断的 0; 指定将 0 写入的位置, 这里写入 / tmp/newdisk 文件; bs 指定每个块的大小; count=100,100x1M 即 100M
记录了 100+0 的读入
记录了 100+0 的写出
104857600 字节 (105 MB) 已复制, 1.77548 秒, 59.1 MB / 秒
[root@hyc-01-01 mnt]# du -sh /tmp/newdisk
100M /tmp/newdisk 创建虚拟磁盘完成
2 格式化
[root@hyc-01-01 mnt]# mkswap -f /tmp/newdisk 执行 swap 分区的特殊的格式化
正在设置交换空间版本 1, 大小 = 102396 KiB
无标签, UUID=eb572afa-284e-42f0-883e-136ebeb63e68
- [root@hyc-01-01 mnt]# free -m 查看目前 swap 分区大小
- total used free shared buff/cache available
- Mem: 984 120 600 6 263 689
- Swap: 2047 0 2047
- [root@hyc-01-01 mnt]# swapon /tmp/newdisk 挂载分区到 swap
swapon: /tmp/newdisk: 不安全的权限 0644, 建议使用 0600.
- [root@hyc-01-01 mnt]# free -m
- total used free shared buff/cache available
- Mem: 984 120 600 6 263 689
Swap: 2147 0 2147 增加了 100Mswap 空间
[root@hyc-01-01 mnt]# chmod 0600 /tmp/newdisk 考虑安全可以将 / tmp/newdisk 权限改为 0600
卸载 swap
- [root@hyc-01-01 mnt]# swapoff /tmp/newdisk
- [root@hyc-01-01 mnt]# free -m
- total used free shared buff/cache available
- Mem: 984 120 600 6 263 689
Swap: 2047 0 2047 空间大小恢复为 2047
来源: http://www.bubuko.com/infodetail-2648041.html