4.1 查看磁盘或目录的容量
df命令
df命令(disk filesystem)用于查看已挂载磁盘的总容量、使用容量、剩余容量等(默认以KB为单位显示)。
- 参数:
-i 表示查看inode的使用状况(如果已使用100%,即使磁盘空间有富余,也会提示磁盘空间已满)
-h 表示使用合适的单位显示
-k 表示以KB为单位显示
-m 表示以MB为单位显示
df命令不加任何参数时,第1列为分区的名字;第2列为该分区的总容量;第3列为已使用容量;第4列为剩余容量;第5列为使用容量的百分比;最后一列为挂载点。
补充:磁盘分区名带tmpfs
字样的为临时文件系统(重启消失),free命令可以查看swap分区的使用情况。
du命令
du命令(disk useage)用来查看某个目录或文件所占空间的大小(如果不指定单位,默认显示单位为KB)
语法:du [- abckmsh] [文件或目录名]
- 参数:
-a 表示全部文件和目录的大小都列出来(后面如果不加参数,则只会列出目录(包含子目录)的大小)
-b 表示列出的值以B为单位输出
-k 表示以KB为单位输出
-m 表示以MB为单位输出
-h 表示系统自动调节单位
-c 表示最后加总
-s 表示只列出总和
通常使用du -sh filename
4.2 磁盘的分区和格式化
磁盘分区
fdisk命令用于Linux下硬盘的分区,但fdisk只能划分小于2TB的分区。
- 语法:fdisk [-l] [设备名称],其选项只有 -l
选项 -l 后面如果不加设备名称,会直接列出系统中所有的磁盘设备以及分区表;加上设备名称,则会列出该设备的分区表。
另外,fdisk 命令后面如果不加 -l 选项,则会进入另一个模式,在该模式下,可以对磁盘进行分区操作。
- 参数:
p 表示打印当前磁盘的分区情况
n 表示建立一个新的分区
w 表示保存
q 表示退出
d 表示删除一个分区
使用 n 参数后,会提示选择 p(主分区)还是 e(扩展分区)
在Linux系统中,最多只能创建4个主分区,分区时只能存在1个扩展分区,前4个分区只能是主分区或扩展分区。使用p查看,主分区的id为83,最后一列显示为Linux;而扩展分区的id为5,最后一列显示为Extended。
扩展分区无法被格式化,扩展分区的子分区称为逻辑分区(用l表示和创建),逻辑分区的id是从5开始的,因为前4个id为主分区或者扩展分区,并且逻辑分区必须是连续的分区。
4.3 格式化磁盘分区
命令mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4和mkfs.xfs
前4个命令的作用一样(同一个man文档)。
- 参数:
-b 表示分区时设定每个数据区块占用的空间大小(每个数据块支持1024B、2048B以及4096B)
-i 表示设定inode的大小
-N 表示设定inode的数量
-c 表示在格式化前先检测一下磁盘是否有问题
-L 表示预设该分区的标签(label)
-j 表示建立ext3格式的分区(如果使用 mkfs.ext3 命令,就不需要加这个选项)
-t 用来指定文件系统的类型,可以是ext2、ext3或ext4
mke2fs 并不支持把分区格式化成XFS类型,而只能使用 mkfs.xfs
ext4文件系统的默认块大小是4096(4KB),在格式化时,可以指定块大小,但超过4096KB无法正常挂载
命令 blkid 可以查看未挂载的分区类型
命令 e2label 用于查看或修改分区的标签,它只支持ext格式的文件系统,而不支持XFS文件系统
4.4 挂载/卸载磁盘
mount命令
命令mount用于查看当前系统已经挂载的所有分区、分区文件系统的类型、挂载点及一些选项等信息(查看某个已挂载分区的文件系统类型)。
- 参数:
-a 挂载 /etc/fstab 中出现的所有需要挂载的磁盘分区
-o 用来指定挂载的分区有哪些特性,即 /etc/fstab 文件中的第四列内容
-o remount 重新挂载磁盘分区
-t 用来指定挂载的分区类型,默认不指定,自动识别
命令 umount 卸载磁盘分区,umount -l 命令可在不退出卸载分区的当前目录的同时卸载磁盘分区
/etc/fstab 配置文件
/etc/fstab文件中显示了系统启动时需要挂载的各个分区。
/etc/fstab 文件含义如下:
第一列:分区的标识,可以写分区的label、UUID和分区名
第二列:挂载点
第三列:分区格式
第四列:mount 的一些参数,一般为defaults(默认包含:rw、suid、dev、exec、auto、nouser、async)
第五列:表示是否被dump备份(1表示备份,0表示不备份)
第六列:表示开机时是否自检磁盘(1和2都表示检测,0表示不检测,自检时,1比2优先级高)
通过 blkid 命令获取各分区的UUID;
umount 命令后面可以跟挂载点和分区名,但不可以跟label和UUID。
手动增加swap空间
swap空间类似于Windows的虚拟内存,分区时一般指定虚拟内存大小为实际内存的2倍。
基本思路:建立swapfile → 格式化为swap格式 → 启用该虚拟磁盘
- 首先,建立swapfile:
# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
dd 命令:if指定源;of指定目标文件;bs定义块的大小;count定义块的数量
- mkswap命令,格式化为swap格式:
# mkswap -f /swap/newdisk
- 启用swap分区磁盘:
# swapon /tmp/newdisk
swapoff 可以卸载swap分区磁盘;
free 用于查看内存的使用情况(-m 表示以MB为单位显示)。
parted工具
当在命令行输入parted 后,进入parted 命令的交互模式。输入help会显示帮助信息。
- 常用功能:
1. check 简单检查文件系统(建议用fsck检查文件系统)
2. mklabel 创建分区表,不管是msdos(MBR)还是gpt,或是其它方式分区表
3. mkfs 创建文件系统(不支持ext3格式,最好使用parted分区,然后退出parted交互模式
4. mkpart 创建新分区
5. mkpartfs 建立分区及其文件系统
6. print 输出分区信息(free、number、all)
7. resize 调整指定的分区大小
8. rm 删除分区(rm number)
LVM
LVM 可以在使用很多硬盘的系统中,方便对硬盘管理,增加系统的扩展性。
- 准备磁盘分区,先把硬盘umount:
- fdisk
- 创建新分区,分别是1G,n
- -t 改变分区类型为 8e(LVM),只有这样才可以做物理卷
- 接下来准备物理卷:
- 安装命令pvcreate(创建物理卷、列出当前物理卷、删除物理卷)
- 创建完分区后,如果目录中还没有这个路径,使用partprobe添加进去
- 创建卷组vgcreate
- 查看卷组的信息vgdisplay(vgremove删除卷组)
- 创建逻辑卷(lvcreate -L 指定大小 -n 逻辑卷)
- 格式化磁盘(ext4适合做扩容缩容,XFS不支持缩容)
- 挂载逻辑卷
详见:LVM讲解
更多参考资料:
存储常识:http://forum.huawei.com/enterprise/zh/thread-274145-1-1.html
磁盘修复:https://www.2cto.com/os/201204/126370.html