查看硬盘分区信息

在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的硬盘作为测试,添加新硬盘后需要重启才可以使用

image

重启后再次输入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命令,但对于配置文件挂载的分区来说,重启系统后仍然会挂载,需要编辑配置文件,将刚刚挂载两行配置注释掉,然后重启系统