一、磁盘格式化
分好去的磁盘需要格式化之后才可以使用。磁盘分区一般用mke2fs命令或者mkfs.filesystemtype。这个filesystemtype分为ext4,ext3,xfs等等。xfs是centos7自带的文件系统格式。
查看当前磁盘支持的文件系统:
再看看已经挂载后的磁盘:
mke2fs有几个常用参数:-b指定块大小,-m指定预留百分比,-i指定每个inode节点大小。
-b:表示分区时设定每个数据区块占用的空间大小。目前,每个数据块支持1024B、2048B以及4096B。
-i:表示设定inode的大小。
-N:表示设定inode的数量。有时默认的inode数不够用,所以要自定义inode的数量。
-c:表示在格式化之前先检测一下磁盘是否有问题。加上这个选项后,运行速度会非常慢。
-L:表示预设该分区的标签(label)。
-j:表示建立ext3格式的分区。如果使用mkfs.ext3格式,就不用加这个选项了。
-t:用来指定文件系统的类型,可以是ext2,ext3,也可以是ext4
现在我们使用mke2fs格式化xfs:
其实除了mke2fs命令可以格式化磁盘,另一个命令mkfs.xfs也可以,想对应的还有mkfs.ext4,mkfs.ext3等等
通过实验,我们发现mkfs.xfs不支持-b(块的大小)选项,也不支持-m(预留空间百分比)和-i(每个inode大小)选项。但是mkfs.ext4是支持的
磁盘在格式化的时候,会预先规定好每一块的大小,然后再把所有的空间分割成一个一个的小块。存数据的时候,也是一个块一个块的写入。ext4文件系统的默认块大小为4096B(4KB)。在格式化时,可以指定块大小为1024B、2048B或者4096B。指定块大小超过4096B,就不能正常挂载。
用mke2fs方法也能实现,事实上mke2fs和mkfs.ext4基本上是等同的。默认的块大小是4096。
[root@pantinglinux-01 ~]# mke2fs -t ext4 /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 inodes, 262144 blocks blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=268435456 block groups blocks per group, 32768 fragments per group inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (8192 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
通过观察发现,如果默认一个块是4096byte,那么一个Inode是4个块。如果我们把每个Inode调成8192:
[root@pantingaolinux-02 ~]# mke2fs -i 8192 -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 inodes, 262144 blocks blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=268435456 block groups blocks per group, 32768 fragments per group inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376
发现节点数增加了,块数没有增加。
查看电脑上已经挂载的磁盘:
[root@pantingaolinux-02 ~]# mount | grep "/dev/sd*" tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) /dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
二、磁盘挂载
磁盘需要挂载之后才可以读写。挂载需要找一个挂载点,比如/,/boot/这都是挂载点。我们先看看机器上有哪些磁盘是可以挂载的:
[root@pantinglinux-02 ~]# fdisk -l 磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x00036cf2 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 411647 204800 83 Linux /dev/sda2 411648 4507647 2048000 82 Linux swap / Solaris /dev/sda3 4507648 41943039 18717696 83 Linux 磁盘 /dev/sdb:4294 MB, 4294967296 字节,8388608 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x2f45f776 设备 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux /dev/sdb2 6293504 7931903 819200 83 Linux /dev/sdb3 2099200 6293503 2097152 5 Extended /dev/sdb5 2101248 4198399 1048576 83 Linux /dev/sdb6 4200448 5838847 819200 83 Linux
/dev/sdb上的分区都没有挂载,那我们现在挂载一下/dev/sdb1/:
[root@pantinglinux-02 ~]# mount /dev/sdb1 /mnt [root@pantinglinux-02 ~]# mount |grep "/dev/sd*" tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) /dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota) /dev/sdb1 on /mnt type ext2 (rw,relatime,seclabel)
查看磁盘属性:
[root@pantinglinux-02 ~]# blkid /dev/sda1: UUID="4d7f0a80-47f8-4b8a-a677-4c14b801d43e" TYPE="xfs" /dev/sda2: UUID="c1ce52b4-b264-4de0-a7d6-4f33d1ab4a2d" TYPE="swap" /dev/sda3: UUID="604bc673-7f8d-4355-919f-ed6740a8efc8" TYPE="xfs" /dev/sdb1: UUID="0f8ee81b-d2df-48d3-adcd-ee79965ca313" TYPE="ext2" /dev/sr0: UUID="2016-12-05-13-55-45-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
卸载磁盘:
[root@pantinglinux-02 ~]# umount /dev/sdb1 [root@pantinglinux-02 ~]# !moun mount |grep "/dev/sd*" tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) /dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
新加入的磁盘要加入开机自动挂载的方法:
vim /etc/fstab
# # /etc/fstab # Created by anaconda on Tue Oct 17 04:46:42 2017 # # 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=604bc673-7f8d-4355-919f-ed6740a8efc8 / xfs defaults 0 0 UUID=4d7f0a80-47f8-4b8a-a677-4c14b801d43e /boot xfs defaults 0 0 UUID=c1ce52b4-b264-4de0-a7d6-4f33d1ab4a2d swap swap defaults 0 0
文件内容每行被用空格分成5部分,每部分的意义:
uuid=604b... 的意思是磁盘id
xfs 磁盘文件系统
defaults : 挂载默认选项
0 : 备份(无意义)
0:0开启不检查磁盘,如果要检查的话,一般给/boot分区设置为1,其他设置为2
添加一个磁盘启动项:
# # /etc/fstab # Created by anaconda on Tue Oct 17 04:46:42 2017 # # 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=604bc673-7f8d-4355-919f-ed6740a8efc8 / xfs defaults 0 0 UUID=4d7f0a80-47f8-4b8a-a677-4c14b801d43e /boot xfs defaults 0 0 UUID=c1ce52b4-b264-4de0-a7d6-4f33d1ab4a2d swap swap defaults 0 0 /dev/sdb1 xfs defaults
三、手动增加swap空间
一般我们不会用到比较大的swap空间。如果内存为4G,我们最多分配8G的swap空间。如果某些应用程序要求使用那么大的空间,我们可以进行手动扩容。
步骤:
1.创建虚拟磁盘:
[root@pantinglinux-02 ~]# dd if=/dev/zero of=/tmp/testdisk bs=1M count=200 记录了200+0 的读入 记录了200+0 的写出 209715200字节(210 MB)已复制,4.59577 秒,45.6 MB/秒 [root@pantinglinux-02 ~]# ls -ld /tmp/testdisk -rw-r--r--. 1 root root 209715200 11月 4 09:33 /tmp/testdisk [root@pantinglinux-02 ~]# ls -ldh /tmp/testdisk -rw-r--r--. 1 root root 200M 11月 4 09:33 /tmp/testdisk [root@pantinglinux-02 ~]# mkswap /tmp/testdisk 正在设置交换空间版本 1,大小 = 204796 KiB
这里面有几点需要说明一下。
dd命令的 if参数的意思是:数据源从哪里来。/dev/zero是个造零器。of的意思是到那里去。bs是块的大小。count是多少块。
mkswap是将造的空间转换成swap空间。
2.将虚拟磁盘的空间增加到swap:
[root@pantinglinux-02 ~]# free -m total used free shared buff/cache available Mem: 976 119 452 6 404 665 Swap: 1999 0 1999 [root@pantinglinux-02 ~]# swapon /tmp/testdisk swapon: /tmp/testdisk:不安全的权限 0644,建议使用 0600。 [root@pantinglinux-02 ~]# free -m total used free shared buff/cache available Mem: 976 119 452 6 404 664 Swap: 2199 0 2199 [root@pantinglinux-02 ~]# chmod 600 /tmp/testdisk [root@pantinglinux-02 ~]# free -m total used free shared buff/cache available Mem: 976 119 452 6 404 664 Swap: 2199 0 2199
如果要删除新增的空间,使用命令:
[root@pantinglinux-02 ~]# swapoff /tmp/testdisk [root@pantinglinux-02 ~]# free -m total used free shared buff/cache available Mem: 976 117 454 6 404 667 Swap: 1999 0 1999