4.1-4.13 df, du, 磁盘分区,磁盘格式化,磁盘挂载,手动增加swap空间
df
df 的作用是查看已挂载的磁盘的总容量,使用方式,剩余容量等。在不加参数的情况下默认以kb为单位显示。df是disk filesystem的缩写。
可添加的参数有-i 查看inode的使用情况,-h表示已人能读懂的单位显示,-k和-m则是以KB和MB显示。示例如下,未挂载的磁盘不会在df中显示。
[root@centos-01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 22G 1.2G 21G 6% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.4G 0 1.4G 0% /dev/shm
tmpfs 1.4G 8.6M 1.4G 1% /run
tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/sda1 197M 109M 88M 56% /boot
tmpfs 277M 0 277M 0% /run/user/0
[root@centos-01 ~]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda3 11468288 32474 11435814 1% /
devtmpfs 351824 399 351425 1% /dev
tmpfs 354276 1 354275 1% /dev/shm
tmpfs 354276 460 353816 1% /run
tmpfs 354276 16 354260 1% /sys/fs/cgroup
/dev/sda1 102400 330 102070 1% /boot
tmpfs 354276 1 354275 1% /run/user/0
du
du的用途是查看文件或者目录的大小。du是disk useage的缩写。使用时需要在命令后写上需要查看的文件或者目录的路径。
常用的参数有:
-a 表示列出全部文件和目录的大小。如果不加,只显示目录和子目录的大小,文件大小不显示。
-b -k -m分别表示以B,KB和MB显示。如果不添加参数,默认为KB显示。
-h表示以合适的方式显示,以让人可以看懂。
-c表示最后加总。
-s表示只列出总和,不列出子目录和文件。
最常用的方式是du -sh /dirtest
磁盘分区
磁盘分区需要用fdisk命令,fdisk是Linux上的磁盘分区工具,但是只能划分小于2TB的分区。
命令使用格式为fdisk [-l] [设备名称]
,如果只输入fdisk,不会有任何功能。
- 如果fdisk -l 不加设备名称,那么会显示系统中所有的磁盘设备以及分区表,无论是否挂载。
- 如果fdisk -l 加上设备名称,则会显示此设备的分区信息。
- 如果fdisk 加上设备名称但是没有-l,则会进入分区操作模式。
分区模式中,选项有:
- p 打印当前的分区表
- n 新建一个分区
- d 删除一个分区
- w 保存
- q 退出
新建分区时,可选的分区类型有主分区p和扩展分区e,但是在Linux系统中,一个磁盘只能有4个主分区,如果想多建几个分区,只能最多设三个主分区,留一个分区用作扩展分区,然后在扩展分区里设置逻辑分区。
逻辑分区的id从5开始,因为前4个id为主分区或者扩展分区预留。
磁盘格式化
磁盘分区后还不能直接使用,需要先进性格式化,才能挂载并使用。常见的格式有ext2,ext3,ext4以及xfs。可以使用的命令有mke2fs以及mkfs。
mke2fs支持ext2,ext3,ext4格式,但是不支持xfs格式。如果想使用xfs格式需要用mkfs命令。
mke2fs可选的参数有:
- b 表示每个数据区块占用的空间大小。分别为1024B,2048B,4096B。
- i 表示设定inode的大小。
- N设定inode的数量。
- L预设该分区的标签。
- t 用来指定文件系统的类型,如果不指定则默认为ext2,而ext2的性能比较低,所以不应该使用默认设置。
通过新建一个空文本文件,里面添加几个文字。然后du -h 文件名
可以间接查看block的大小。
[root@centos-01 ~]# mke2fs -t ext4 /dev/sdb4 //mke2fs使用示例
[root@centos-01 ~]# mkfs.xfs -f /dev/sdb1 //mks使用示例。如果磁盘上已有文件系统,应该先umount分区然后加-f强制安装新的文件系统。
格式化分区时,应该确保磁盘处于umount状态下,否则不能进行格式化操作。
e2label可以用于修改分区的标签,但只支持ext格式不支持xfs格式。
e2label /dev/sdb1 test123 //更改sdb1的label为test123
磁盘挂载
磁盘挂载使用mount命令,挂载点为一个目录,并且一个目录下只能挂载一个磁盘。所以在挂载之前,需要确保目录为空。卸载命令是umount。使用示例为:
mount /dev/sdb1 /mnt //挂载sbd1到/mnt目录下
/etc/fstab 文件
fstab文件记录了系统启动时需要挂载的分区,各列含义为:
第一列,分区的标示,可以写uuid也可以写lable
第二列是挂载点
第三列是分区格式
第四列是挂载参数,一般情况下默认defaults即可
第五列表示是否被dump备份,0表示不备份,1表示备份
第六列表示开机是否自检磁盘。1,2都表示检测,0表示不检测,自检时1比2的优先级高,先检测1再检测2
第四列常用的选择有:
async/sync 表示是否把内存中的数据同步写入磁盘,默认为async,因为如果同步写的话磁盘会太过于繁忙
defaults 表示包含了rw,suid,dev,exec,auto,nouser和async。
rw为读写模式
ro为只读模式
exec/noexec 表示是否允许文件执行
user/nouser表示是否允许root意外的用户挂载
[root@centos-01 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Oct 24 05:21:49 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=0af5d8af-c23c-4f88-8afc-8d56b6e67837 / xfs defaults 0 0
UUID=954cb514-2d18-4bfa-bd78-e4325890960f /boot xfs defaults 0 0
UUID=549d0d42-f481-4d1a-8c23-9fe3752e801e swap swap defaults 0 0
如果我们在上述文件中添加一行:
LABEL=test123 /newdir ext4 defaults 0 0
然后运行 mount -a
此时我们会开到label为test123的磁盘sdb1已经挂载在/newdir目录下。
mount -a的作用是让/etc/fstab中出现的所有磁盘分区挂载上。
磁盘卸载
磁盘卸载用umount命令,umount后可以跟挂载点也可以跟磁盘名但是不能跟uuid或者label。
当卸载遇到问题时,可以加上选项-l进去懒人卸载模式。
mount /mnt //卸载目录mnt下挂载的磁盘sdb1
手动增加swap空间
swap分区称为交换分区,类似于windows的虚拟内存。当swap不够用时,我们需要手动增加虚拟磁盘。
思路为:建立swapfile,格式化为swap格式,启用该虚拟磁盘。
dd if=/dev/zero of=/home/swap bs=1M count=1024 //用造零器/dev/zero制造1024M的文件
mkswap /home/swap //格式化为swap文件
swapon /home/swap //挂载swap分区
vim /etc/fstab
在最后一行增加 /home/swap swap swap default 0 0 以避免重启后增加的swap空间消失
删除swap空间的思路正好相反:
swapoff /home/swap
rm -rf /home/swap
vim /etc/fstab
在最后一行删除 /home/swap swap swap default 0 0