目录
1 磁盘格式化
磁盘格式化命令:mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4 和mkfs.xfs
现在以mke2fs为例:常用的参数
-b:表示分区时设定每个数据区块占用的空间大小。目前,每个数据块支持1024B、2048B以及4096B。
-i:表示设定inode的大小。
-N:表示设定inode的数量。有时默认的inode数不够用,所以要自定义inode的数量。
-c:表示在格式化前先检测一下磁盘是否有问题。加上这个选项后,运行速度会非常慢。
-L:表示预设该分区的标签(label)。
-j:表示建立ext3格式的分区。如果使用mkfs.ext3格式,就不用加这个选项了。
-t:用来指定文件系统的类型,可以是ext2、ext3 ,也可以是 ext4
- 将磁盘格式化为ext4文件格式
[root@worker1 ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000d76be
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 4317183 1952768 82 Linux swap / Solaris
/dev/sda3 4317184 41943039 18812928 83 Linux
Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x530aa6fb
Device Boot Start End Blocks Id System
[root@worker1 ~]# mke2fs -t ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 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
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
- 将磁盘格式化为xfs文件格式(因为磁盘之前为ext4格式,所以加-f)
[root@worker1 ~]# mke2fs -t xfs /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Your mke2fs.conf file does not define the xfs filesystem type.
Aborting...
[root@worker1 ~]# mkfs.xfs /dev/sdb
mkfs.xfs: /dev/sdb appears to contain an existing filesystem (ext4).
mkfs.xfs: Use the -f option to force overwrite.
[root@worker1 ~]# mkfs.xfs -f /dev/sdb
meta-data=/dev/sdb isize=256 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
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@worker1 ~]# mke2fs -b 2048 -t ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=271056896
160 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104,
2048000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
- 磁盘最大化使用(预留空间大小设置)
[root@worker1 ~]# mke2fs -m 0.2 -t ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
2621 blocks (0.20%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 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
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
- 磁盘格式化设置inode大小
[root@worker1 ~]# mke2fs -i 8192 -t ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
2 磁盘挂载
- 查看未挂载的分区
[root@worker1 ~]# blkid /dev/sdb
/dev/sdb: UUID="60b61c1b-8bad-4110-892d-9fc539a2ae18" TYPE="xfs"
- 挂载格式化的分区
[root@worker1 ~]# mount /dev/sdb /mnt/
[root@worker1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.9G 17G 11% /
devtmpfs 908M 0 908M 0% /dev
tmpfs 917M 0 917M 0% /dev/shm
tmpfs 917M 8.6M 908M 1% /run
tmpfs 917M 0 917M 0% /sys/fs/cgroup
/dev/sda1 197M 103M 94M 53% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/sdb 5.0G 33M 5.0G 1% /mnt
- 卸载挂载的分区
[root@worker1 ~]# umount /dev/sdb
[root@worker1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.9G 17G 11% /
devtmpfs 908M 0 908M 0% /dev
tmpfs 917M 0 917M 0% /dev/shm
tmpfs 917M 8.6M 908M 1% /run
tmpfs 917M 0 917M 0% /sys/fs/cgroup
/dev/sda1 197M 103M 94M 53% /boot
tmpfs 184M 0 184M 0% /run/user/0
如果进入了挂载目录里,而又想卸载挂载分区,执行
umount -l /mnt/
- 设置系统启动挂载磁盘
[root@worker1 ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Sep 5 22:52:19 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=f1491541-788d-4fc2-9693-7d350e9d3d92 / xfs defaults 0 0
UUID=cd98c29e-3b2d-46b6-a4cd-239327f04623 /boot xfs defaults 0 0
UUID=e9d9316c-94a2-4fa0-a559-b56a431fb735 swap swap defaults 0 0
/dev/sdb /mnt ext4 defaults 0 0
~
- /etc/fstab配置文件
第1列就是分区的标识,可以写分区的LABEL、分区的UUID,也可以写分区名(/dev/sda1)。
第2列是挂载点。
第3列是分区的格式。
第4列是mount的一些挂载参数。一般情况下,直接写defaults即可。
第5列的数字表示是否被dump备份。1表示备份,0表示不备份。
第6列的数字表示开机时是否自检磁盘。1和2都表示检测,0表示不检测。自检时,1比2优先级高,所以先检测1,再检测2。如果有多个分区需要开机检测,就都设置成2,1检测完后会同时检测2。在CentOS 7系统里,所有分区中该列的值都是0。
- mount命令带的参数
async/sync:async表示与磁盘和内存不同步。系统每隔一段时间就会把内存数据写入磁盘
中,而sync则会时时同步内存和磁盘中的数据。
auto/noauto:表示开机自动挂载/不自动挂载。
default:表示按照大多数永久文件系统的默认值设置挂载定义,它包含了rw、suid、dev、
exec、auto、nouser和async。
ro:表示按只读权限挂载。
rw:表示按可读可写权限挂载。
exec/noexec:表示允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,否则将
无法使用系统,甚至连mount命令都无法使用。
user/nouser:表示允许/不允许root外的其他用户挂载分区。为了安全,请用nouser。
suid/nosuid:表示允许/不允许分区有suid属性,一般设置nosuid。
usrquota:表示启动用户的磁盘配额模式。磁盘配额会针对用户限定他们使用的磁盘额度。
grquota:表示启动群组的磁盘配额模式。
-t选项:用来指定挂载的分区类型,默认不指定,会自动识别。
-o选项:用来指定挂载的分区有哪些特性,即上面/etc/fstab配置文件中第4列的那些
- 重新挂载指定操作权限
[root@worker1 ~]# mount /dev/sdb /mnt/
[root@worker1 ~]# mount -o remount,rw,sync /dev/sdb /mnt/
[root@worker1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.9G 17G 11% /
devtmpfs 908M 0 908M 0% /dev
tmpfs 917M 0 917M 0% /dev/shm
tmpfs 917M 8.6M 908M 1% /run
tmpfs 917M 0 917M 0% /sys/fs/cgroup
/dev/sda1 197M 103M 94M 53% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/sdb 4.8G 20M 4.5G 1% /mnt
3 手动增加swap空间
遇到了虚拟内存不够用的情况,就必须增加一个虚拟磁盘,因为我们不可能重新给磁盘分区。增加虚拟磁盘的基本思路是:建立swapfile→格式化为swap格式→启用该虚拟磁盘
- 创建一个100M的文件
[root@worker1 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.487933 s, 215 MB/s
[root@worker1 ~]# du -sh /tmp/newdisk
100M /tmp/newdisk
[root@worker1 ~]# free -m
total used free shared buff/cache available
Mem: 1832 103 1486 8 242 1580
Swap: 1906 0 1906
- 将文件格式化为swap格式
[root@worker1 ~]# mkswap -f /tmp/newdisk
Setting up swapspace version 1, size = 102396 KiB
no label, UUID=643dda66-ac09-4243-a508-c52f9b9df070
- 将格式化文件挂载
[root@worker1 ~]# swapon /tmp/newdisk
swapon: /tmp/newdisk: insecure permissions 0644, 0600 suggested.
[root@worker1 ~]# free -m
total used free shared buff/cache available
Mem: 1832 103 1486 8 242 1580
Swap: 2006 0 2006
- 将swap文件卸载
[root@worker1 ~]# free -m
total used free shared buff/cache available
Mem: 1832 103 1486 8 242 1580
Swap: 2006 0 2006
[root@worker1 ~]# swapoff /tmp/newdisk
[root@worker1 ~]# free -m
total used free shared buff/cache available
Mem: 1832 102 1487 8 242 1580
Swap: 1906 0 1906
- 删除创建的swap文件
[root@worker1 ~]# rm -f /tmp/newdisk