CentOS7学习笔记(七) 磁盘管理
查看硬盘分区信息
在Linux中使用lsblk
命令查看硬盘以及分区信息
[root@192 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 25G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 24G 0 part
├─centos-root 253:0 0 22G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
可以看到列出了硬盘分区情况,这里介绍下打印的内容
NAME列为磁盘名称,Linux支持IDE和SCSI两种硬盘,他们在Linux中的标识符分别为hd和sd,sda就证明该硬盘为第一块SCSI硬盘(a代表排序),基于硬盘延展出来的sda1、sda2就是硬盘分区,结尾的sr0代表的是光驱,目前没有插入任何光驱,所以sr0后面什么都没有
RM列用来查看该设备是否为可移动设备,如果RM列显示的值为1表示该设备为可以移动设备
SIZE列代表当前分区容量的大小
TYPE列表示当前磁盘类型,disk代表硬盘、part代表分区、rom代表只读存储
MOUNTPOINT列代表该分区挂载的位置
查询硬盘分区UUID
[root@192 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 7297e57b-f917-4392-93e1-cd40cc843f62 /boot
└─sda2 LVM2_member TQ8fPI-obaJ-DPCt-iYXx-F9WV-kUEg-XuDtem
├─centos-root xfs 523bbbbc-fc24-4b94-85cf-9edd337a3ffd /
└─centos-swap swap ac7fe4f7-bd1a-44d0-86d0-b283da59879c [SWAP]
sr0
FSTYPE列表示每块分区的文件系统类型,是在安装系统时选择的,可以回看第一篇笔记内容
UUID列顾名思义,代表该分区的唯一ID
使用情况查询
系统整体磁盘使用情况
查看目录使用情况可以使用df
命令,配合-h
参数可以更好的查看容量信息
[root@192 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 22G 3.1G 19G 15% /
/dev/sda1 1014M 137M 878M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
也可以查看指定目录对应挂载点的使用情况
[root@192 /]# df -h /home
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 22G 3.1G 19G 15% /
指定目录磁盘占用情况
df命令是查看磁盘整体使用情况的,如果想查看某个目录在磁盘中的使用情况可以使用du
命令
[root@192 ~]# du -h --max-depth=0 /root
147M /root
--max-depth代表的是深度,设置为0表示只显示该目录本身的使用情况,可以将深度放大
[root@192 ~]# du -h --max-depth=1 /root
44K /root/app-log
8.0K /root/.java
0 /root/.pki
147M /root/eiss
147M /root
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth 子目录深度
-c 列出明细的同时,增加汇总值
硬盘分区及挂载
我这里在VMWare上添加了1GB的硬盘作为测试,添加新硬盘后需要重启才可以使用
重启后再次输入lsblk
命令,可以看到新硬盘已经加进来了,名称为sdb
[root@192 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 25G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 24G 0 part
├─centos-root 253:0 0 22G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
sr0 11:0 1 1024M 0 rom
想要使用该硬盘需要给硬盘分区,接下来使用fdisk
命令对硬盘进行分区操作,尝试将sdb划分为两个分区,其中一个300MB,另一个使用剩余空间
[root@192 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xc0f746ab 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-2097151,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151):+300M
分区 1 已设置为 Linux 类型,大小设为 300 MiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (616448-2097151,默认为 616448):
将使用默认值 616448
Last 扇区, +扇区 or +size{K,M,G} (616448-2097151,默认为 2097151):
将使用默认值 2097151
分区 2 已设置为 Linux 类型,大小设为 723 MiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
解释一下上面命令的含义:
1. 首先使用fdisk工具对/dev/sdb硬盘进行分区操作
2. 接下来进入fdisk分区向导,输入指令执行下一步操作,不熟悉指令可以输入m 查看帮助,这里输入n 新建分区
3. 接下来工具会询问创建的分区为主分区还是逻辑分区,这里可以直接回车,默认选择p 主分区
4. 接下来会询问使用什么驱动号,回车顺延即可
5. 接下来询问分区的起始扇区,如果把硬盘比作一根香蕉,这就好比问你在哪里下口,直接回车使用最靠前的位置,防止中间遗漏容量
6. 接下来询问分区的结束扇区,起始扇区到结束扇区内的长度,就代表该分区的容量,这里输入 +300M 表示在起始分区位置扩展300MB
7. 这样就已经创建好一个分区了,然后向导会回到步骤2的位置,这里选择n 继续创建分区下一个分区,后面步骤相同就缩写了
8. 回车,默认主分区
9. 回车,顺延驱动号
10. 回车,起始扇区 使用靠前位置(紧挨着上一个分区结尾的位置)
11. 回车,结束扇区 这里与之前不同,没有输入容量直接进行回车,表示使用剩余所有空间
12. 第二个分区创建完毕,再次回到步骤2,此时分区已经编辑完成,但还没有将操作写入到硬盘,输入w 将变更保存到硬盘,工具会自动退出,如果放弃变更的话直接Ctrl+C强退即可
接下来运行一下lsblk -f
命令,查看磁盘分区情况
[root@192 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 7297e57b-f917-4392-93e1-cd40cc843f62 /boot
└─sda2 LVM2_member TQ8fPI-obaJ-DPCt-iYXx-F9WV-kUEg-XuDtem
├─centos-root xfs 523bbbbc-fc24-4b94-85cf-9edd337a3ffd /
└─centos-swap swap ac7fe4f7-bd1a-44d0-86d0-b283da59879c [SWAP]
sdb
├─sdb1
└─sdb2
sr0
可以看到分区已经创建完成,现在的分区因为没有格式化所以还不能使用,接下来使用mkfs
命令将分区格式化
mkfs代表格式化分区,-t ext4表示分区文件系统为ext4,格式化的分区为/dev/sdb1
[root@192 ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
76912 inodes, 307200 blocks
15360 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33947648
38 block groups
8192 blocks per group, 8192 fragments per group
2024 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@192 ~]# mkfs -t ext4 /dev/sdb2
......
分区已经格式化完成了,再运行一下lsblk -f
命令查看磁盘分区情况
[root@192 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 7297e57b-f917-4392-93e1-cd40cc843f62 /boot
└─sda2 LVM2_member TQ8fPI-obaJ-DPCt-iYXx-F9WV-kUEg-XuDtem
├─centos-root xfs 523bbbbc-fc24-4b94-85cf-9edd337a3ffd /
└─centos-swap swap ac7fe4f7-bd1a-44d0-86d0-b283da59879c [SWAP]
sdb
├─sdb1 ext4 e238f7ce-8874-4e32-924b-3fc2589a4b64
└─sdb2 ext4 aa3a5b33-5f51-4ad0-ae3a-32e3d00c4f8b
sr0
可以看到,分区格式化后就有了唯一的UUID,接下来将分区挂载到目录上
创建text和video文件夹
[root@192 ~]# mkdir /text
[root@192 ~]# mkdir /video
编辑配置文件进行挂载(后面解释)
[root@192 ~]# vim /etc/fstab
配置文件修改完成后更新配置,让分区挂载生效
[root@192 ~]# mount -a
在文件结尾设置分区挂载
# 第一列为分区,可以使用UUID也可以使用分区所在位置的路径
# 第二列为挂载的目标位置
# 第三列为文件系统
# 第四列是挂载选项,defaults默认即可
# 第五列为Dump备份选项,0为不备份,1为每天备份,2为不定期备份
# 第六列为扇区检查,0为不要检查,1为最早检查(适合根目录),2的检查顺序在1后面,适合其他目录
/dev/sdb1 /text ext4 defaults 0 0
/dev/sdb2 /video ext4 defaults 0 0
操作完成后再运行一下lsblk -f
命令查看磁盘分区情况,可以看出分区已经挂载完成了
[root@192 /]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 7297e57b-f917-4392-93e1-cd40cc843f62 /boot
└─sda2 LVM2_member TQ8fPI-obaJ-DPCt-iYXx-F9WV-kUEg-XuDtem
├─centos-root xfs 523bbbbc-fc24-4b94-85cf-9edd337a3ffd /
└─centos-swap swap ac7fe4f7-bd1a-44d0-86d0-b283da59879c [SWAP]
sdb
├─sdb1 ext4 e238f7ce-8874-4e32-924b-3fc2589a4b64 /text
└─sdb2 ext4 aa3a5b33-5f51-4ad0-ae3a-32e3d00c4f8b /video
sr0
除了修改配置文件挂载目录之外,还可以直接通过mount
命令行进行目录挂载,不过这是临时的,重启系统就会失效,mount
命令适用于U盘一类的移动设备
取消挂载的话可以通过umount
命令,但对于配置文件挂载的分区来说,重启系统后仍然会挂载,需要编辑配置文件,将刚刚挂载两行配置注释掉,然后重启系统
作者多数为原创文章 ( 部分转载已标出 ),目前资历尚浅文章内描述可能有误,对此造成的后果深表歉意,如有错误还望指正