Linux之磁盘管理类命令

磁盘管理类命令

磁盘查看和分区类

du:查看文件和目录占用的磁盘空间

1)基本语法

du 目录/文件

显示目录下每个字母的磁盘使用情况

2)选项说明

选项功能
-h以人们交易阅读的GBytes,MBytes,KBytes等格式自行显示
-a不仅查看子目录大小,还包括文件
-c显示所有的文件和子目录大小后,显示总和
-s只显示总和
—max-depth=n 或 -d n指定统计子目录的深度为第n层

3)案例实操

(1)查看当前用户主目录占用的磁盘空间大小

[root@Demo-Server test]# cd
[root@Demo-Server ~]# du -sh
211M    .

(2)综合案例

[root@Demo-Server ~]# cd test/
[root@Demo-Server test]# tree
.
├── logs
│   ├── java.log
│   └── spring.log
├── log.tar.gz
├── log.zip
├── package.zip
└── target
    └── logs
        ├── java.log
        └── spring.log

3 directories, 7 files
[root@Demo-Server test]# du -h
0       ./logs
0       ./target/logs
0       ./target
12K     .
[root@Demo-Server test]# du -ah
4.0K    ./package.zip
0       ./logs/java.log
0       ./logs/spring.log
0       ./logs
4.0K    ./log.zip
4.0K    ./log.tar.gz
0       ./target/logs/java.log
0       ./target/logs/spring.log
0       ./target/logs
0       ./target
12K     .

[root@Demo-Server test]# du -ah -d 1
4.0K    ./package.zip
0       ./logs
4.0K    ./log.zip
4.0K    ./log.tar.gz
0       ./target
12K     .

df:查看磁盘空间使用情况

1)基本语法

df 选项

列出文件系统的整体磁盘使用量,检查文件系统磁盘占用情况。

2)选项

选项功能
-h以人们较易阅读的GBytes、MBytes、KBytes等格式显示大小

3)案例

[root@Demo-Server test]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 470M     0  470M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  8.4M  478M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root   37G  7.2G   30G   20% /
/dev/sda1               1014M  173M  842M   18% /boot
tmpfs                     98M   12K   98M    1% /run/user/42
tmpfs                     98M     0   98M    0% /run/user/0

lsblk:查看设备挂载情况

1)语法

lsblk [选项] [<设备> ...]

设备参数可以省略,此时会列出所有设备

2)选项

选项功能
-f查看详细的设备挂载情况,显示文件系统信息

3)案例

(1)lsblk:查看设备挂载信息

[root@Demo-Server test]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   40G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   39G  0 part
  ├─centos-root 253:0    0   37G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sr0              11:0    1  4.4G  0 rom
  • NAME:块设备名
  • MAJ:MIN:本栏显示主要和次要设备号
  • RM:显示可移动设备。0表示非移动设备,1表示可移动设备
  • SIZE:块设备的空间大小
  • RO:是否只读,0表示非只读,1表示只读
  • TYPE:块设备类型,比如disk磁盘,part分区,lvm逻辑卷,rom只读存储
  • MOUNTPOINT:设备挂载点

(2)lsblk -f:查看设备文件详细信息

[root@Demo-Server test]# lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda
├─sda1          xfs                         8aae9792-4467-4ab5-99c1-19db2e0a687a   /boot
└─sda2          LVM2_member                 88rVHd-kvZq-2DNv-EwYh-1Th7-KrTT-be0xq0
  ├─centos-root xfs                         72845c0e-0173-49ad-a8ed-0f1877060a99   /
  └─centos-swap swap                        8abbdd0c-3be8-451c-8cec-f61780a2e756   [SWAP]
sr0             iso9660     CentOS 7 x86_64 2020-11-04-11-36-43-00

  • NAME:设备名
  • FSTYPE:文件系统类型
  • UUID:文件系统ID
  • MOUNTPOINT:设备挂载点

(3)lsblk 设备:查看某个设备挂载信息

[root@Demo-Server test]# cd
[root@Demo-Server ~]# lsblk /dev/sda
NAME            MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda               8:0    0  40G  0 disk
├─sda1            8:1    0   1G  0 part /boot
└─sda2            8:2    0  39G  0 part
  ├─centos-root 253:0    0  37G  0 lvm  /
  └─centos-swap 253:1    0   2G  0 lvm  [SWAP]

mount:挂载

mount 设备 目录

这个后面的案例中会讲。

umount:卸载

umount <设备> | <目录>
umount -v /dev/sda1umount -v /mnt/mymount/

磁盘管理(添加磁盘、分区、格式化、挂载)

这部分会演示一下,如何在系统中添加一块硬盘,会演示介绍整个过程。

linux如何使用一块硬盘?

大家可以把硬盘想象成一个大房子,房子里面有很多房间,房间需要装修后才能入住,才能够放东西

1)硬盘

相当于一个大房子

2)分区

硬盘想要使用,也需要像房子一样划分成一块块的区域,这个就叫分区,一个分区相当于房子中的一个房间。

在linux中一块硬盘只能划分成4个大的分区,如果想划分更多的分区怎么办呢?

这里就涉及到分区的类型了,即主分区和扩展分区

  • 主分区:内部不能在创建小房间的分区,即一块硬盘最多只能有4个主分区,即4个分区的类型都是主分区。
  • 扩展分区:内部可以继续划分成小房间的分区,一块磁盘中最多只能有一个扩展分区,扩展分区内部可以划分成很多小房间,这些小房间叫做逻辑分区。
3)格式化

对分区进行格式化,相当于对房间进行装修,装修后然后才能放东西,即格式化之后,分区中才能够存储数据

4)挂载

分区经过格式化之后,可以放数据了,而linux中是通过目录来访问文件的,而真正存储数据的是磁盘中的分区,此时目录就需要和分区有个映射关系,创建映射关系这个过程就是挂载的过程,将某个区分和某个目录联系起来,当向这个目录中放文件的时候,实际上就向目录关联的分区中放东西。

硬盘说明

  • linux硬盘分IDE硬盘和SCSI硬盘,目前基本上都是SCSI硬盘
  • 对应IDE硬盘,驱动器标识符为”hdx”,其中“hd”表名分区所在的设备的类型,这里是指IDE硬盘了,“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“”代表分区,钱4个分区用数字1到5表示,他们是主分区或者扩展分区,从5开始就是逻辑分区,例如,hda3表示为第一个IDE硬盘上第3个主分区或扩展分区,hdb2表示第2个IDE硬盘上的第2个主分区或扩展分区
  • 对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在的设备的类型的,其余则和IDE硬盘的表示方法一样

使用lsblk可以看到系统硬盘情况,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YsnswaI6-1684737204959)(磁盘管理类命令.assets/image-20221009221140579.png)]

TYPE列为disk的表示硬盘,可以看出只有一块硬盘,名称为sda,sd开头的是SCSI类型硬盘,这个硬盘下面有2个分区(TYPE类型为part的)

  • sda1:第一个主分区
  • sda2:扩展分区,下面有2个逻辑分区(TYPE列为lvm的)
    • centos-root:逻辑分区,挂载点是/,表示/目录中的数据这个分区中放在
    • centos-swap:逻辑分区,挂载点是[SWAP:交换分区],类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用

案例:演示添加硬盘的过程(含分区、格式化、挂载整个过程)

这个过程还是挺重要,当我们系统中磁盘空间不足的时候,我们需要添加硬盘,就涉及到这个过程。

1)需求

添加一块20G的硬盘,分3个主分区,1个扩展分区,扩展分区下面挂2个逻辑分区,由于我们系统中已经存在一块硬盘了:sda,那么我们重新添加一块硬盘,名称就变成:sdb了,对应的分区如下,如果大家要创建的分区和这个不一样,将过程调整一下就可以了。

分区名称类型(P:主分区,E:扩展分区,L:逻辑分区)大小(G)文件系统类型
sdb1P4Gxfs
sdb2P5Gxfs
sdb3P6Gxfs
sdb4E
sdb5L2Gxfs
sdb6L3Gxfs

2)添加一块20G的硬盘

VMware左侧窗口,选中当前虚拟机->右键->设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LhE0lyj1-1684737204960)(磁盘管理类命令.assets/image-20221009221423149.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aQyMySU7-1684737204961)(磁盘管理类命令.assets/image-20221009221501517.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ueK8saY1-1684737204961)(磁盘管理类命令.assets/image-20221009221523247.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R69euIn3-1684737204962)(磁盘管理类命令.assets/image-20221009221553829.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tec9WfjS-1684737204962)(磁盘管理类命令.assets/image-20221009221627485.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JMBfbPoT-1684737204963)(磁盘管理类命令.assets/image-20221009221707158.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Prk93xNM-1684737204963)(磁盘管理类命令.assets/image-20221009221744267.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vg2Mf7h9-1684737204963)(磁盘管理类命令.assets/image-20221009221850372.png)]

3)重启机器,即可看到新的硬盘

需要重启机器之后,可以看到这颗硬盘,所以执行reboot,重启机器。

重启之后,用lsblk命令,即可看到新加的硬盘:sdb

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h79Y8cfQ-1684737204963)(磁盘管理类命令.assets/image-20221009222017903.png)]

linux中所有设备都是用文件来表示的,都在/dev目录用一个文件表示,磁盘也是一样的,我们通过下面命令来看一下

[root@Demo-Server ~]# ll /dev | grep -w "sd."
brw-rw----. 1 root disk      8,   0 109 22:19 sda
brw-rw----. 1 root disk      8,  16 109 22:19 sdb

  • /dev/sda:对应第1块硬盘
  • /dev/sdb:对应第2块硬盘

4)创建第1个主分区:sdb1,大小为4G

需要用到一个新的命令:fdisk 磁盘,来对磁盘进行分区,这里我们需要对sdb这块磁盘进行分区,所以需用fdisk /dev/sdb来进行操作。

(1)执行fdisk /dev/sdb命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7COpbgLv-1684737204964)(磁盘管理类命令.assets/image-20221009222259667.png)]

(2)输入m,查看帮助

  • n:在当前磁盘创建一个新的分去
  • d:在当前磁盘删除一个分区
  • p:列出当前磁盘分区信息
  • w:保存配置并退出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DDm0FuMy-1684737204964)(磁盘管理类命令.assets/image-20221009222333542.png)]

(3)输入n:创建分区,提示让我们选择创建的分区类型,我们要创建是主分区,所以需要选择p

p:主分区

e:扩展分区

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jMc9u7b3-1684737204965)(磁盘管理类命令.assets/image-20221009222413109.png)]

(4)输入p:提示如下,此时会让我们选择分区编号,这里可以看出分区编号只能有4个

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3iZZnvtt-1684737204965)(磁盘管理类命令.assets/image-20221009222503208.png)]

(5)输入分区编号1,如下,又会提示让我们输入扇区的位置,直接按enter键就行了,会自动取默认值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8EesMc3N-1684737204966)(磁盘管理类命令.assets/image-20221009222512971.png)]

(6)输入分区的大小:+4G,注意这里的格式:+size{K,M,G}这单位有大小写的,不要写错了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ajTd7rdz-1684737204966)(磁盘管理类命令.assets/image-20221009222747595.png)]

(7)输入p看一下,目前的分区信息,如下

可以看到列表中目前只有一个分区:/dev/sdb1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bnjBTatE-1684737204966)(磁盘管理类命令.assets/image-20221009222829310.png)]

5)创建第2个主分区:sdb2,大小为5G

过程参考第4步中创建第一个分区的过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3yufj04k-1684737204967)(磁盘管理类命令.assets/image-20221009222923105.png)]

6)创建第3个主分区:sdb3,大小为6G

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7FZt52E8-1684737204967)(磁盘管理类命令.assets/image-20221009222942459.png)]

7)创建扩展分区:sdb4,大小为剩下的空间

过程和上面的上面创建分区的过程有点不同

  • 分区类型选择的是e,不能选p哦
  • 输入大小的时候,直接按enter就行了,空间大小为剩余的空间,即5G

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-StFWntXT-1684737204968)(磁盘管理类命令.assets/image-20221009223001893.png)]

8)创建逻辑分区:sdb5,大小为2G

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JfKI0Een-1684737204968)(磁盘管理类命令.assets/image-20221009223030971.png)]

9)创建逻辑分区:sdb6,大小为3G

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sCoByXEn-1684737204969)(磁盘管理类命令.assets/image-20221009223051770.png)]

10)输入p查看分区列表,6个分区都ok了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ikUMOhJr-1684737204969)(磁盘管理类命令.assets/image-20221009223105967.png)]

11)输入w保存并退出(别忘啦)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hiQCGwry-1684737204970)(磁盘管理类命令.assets/image-20221009223121878.png)]

12)查看/dev/sdb磁盘分区挂载情况

[root@Demo-Server ~]# lsblk -f /dev/sdb
NAME   FSTYPE LABEL UUID MOUNTPOINT
sdb
└─sdb1
├─sdb2                   
├─sdb3                   
├─sdb4                   
├─sdb5                   
└─sdb6

13)格式化第一个分区sdb1

需要使用mkfs命令对分区进行格式化,语法

mkfs -t 文件类型 设备

这里文件类型我们选择xfs,文件类型这里不介绍了,大家可以自行百度。

执行下面命令对sdb1分区进行格式化

[root@Demo-Server ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1048576 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=4194304, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

14)格式化其他几个分区(不包含扩展分区)

mkfs -t xfs /dev/sdb2
mkfs -t xfs /dev/sdb3
mkfs -t xfs /dev/sdb5
    mkfs -t xfs /dev/sdb6

15)挂载

分区格式化好,然后需要将其和目录进行关联起来之后才可以使用,这个过程就是挂载的过程。

挂载有2种方式

  • 方式1:使用mount命令进行挂载,重启会丢失
  • 方式2:修改文件的方式,持久性的,重启之后不会丢失

16)使用mount命令进行挂载

mount挂载语法如下,将分区挂载到目标目录

mount 设备 目标目录

分区和目录的映射关系如下

分区(也叫挂载点或者设备)目录
/dev/sdb1/home/xxx/dir1
/dev/sdb2/home/xxx/dir2
/dev/sdb3/home/xxx/dir3
/dev/sdb5/home/xxx/dir5
/dev/sdb6/home/xxx/dir6

执行下面命令,对5个分区进行挂载到表格中对应的目录

[root@Demo-Server ~]# cd /home/
[root@Demo-Server home]#

[root@Demo-Server home]# mkdir -p /home/xxx/dir1 /home/xxx/dir2 /home/xxx/dir3 /home/xxx/dir5 /home/xxx/dir6
[root@Demo-Server home]# mount /dev/sdb1 /home/xxx/dir1/
[root@Demo-Server home]# mount /dev/sdb2 /home/xxx/dir2/
[root@Demo-Server home]# mount /dev/sdb3 /home/xxx/dir3/
[root@Demo-Server home]# mount /dev/sdb5 /home/xxx/dir5/
[root@Demo-Server home]# mount /dev/sdb6 /home/xxx/dir6/

再来看看挂载后的情况,如下

[root@Demo-Server home]# lsblk -f /dev/sdb
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
sdb
└─sdb1 xfs          a55fa579-0e1b-4b79-b429-bb6b5913f0fd
├─sdb2 xfs          bed7ee3e-2f6f-408c-b720-49af694bbc7a /home/xxx/dir2
├─sdb3 xfs          6e712f33-c47a-423a-9bfd-372434437549 /home/xxx/dir3
├─sdb4                                                   
├─sdb5 xfs          30f62f64-316e-477d-8b59-99fec197ac28 /home/xxx/dir5
└─sdb6 xfs          18768b27-579c-4b2c-bf9d-326eb47bb7c5 /home/xxx/dir6

下面来测试一下效果,向/home/xxx/dir1目录中扔个大文件,看看对应的分区/dev/sdb1磁盘使用情况是否发生变化了

[root@Demo-Server home]# df -h /dev/sdb1
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        470M     0  470M    0% /dev
[root@Demo-Server home]# find / -size +100M
/proc/kcore
find: ‘/proc/2822/task/2822/fd/5’: 没有那个文件或目录
find: ‘/proc/2822/task/2822/fdinfo/5’: 没有那个文件或目录
find: ‘/proc/2822/fd/6’: 没有那个文件或目录
find: ‘/proc/2822/fdinfo/6’: 没有那个文件或目录
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/var/lib/rpm/Packages
/var/cache/yum/x86_64/7/updates/packages/firefox-91.11.0-2.el7.centos.x86_64.rpm
/var/cache/yum/x86_64/7/updates/packages/firefox-91.12.0-2.el7.centos.x86_64.rpm
/usr/lib/locale/locale-archive
/usr/lib64/firefox/libxul.so

[root@Demo-Server home]# cp /var/cache/yum/x86_64/7/updates/packages/firefox-91.11.0-2.el7.centos.x86_64.rpm /home/dir1

[root@Demo-Server home]# ll -h /home/dir1
-rw-r--r--. 1 root root 107M 109 22:40 /home/dir1

[root@Demo-Server home]# ^C
[root@Demo-Server home]# df -h /dev/sdb1
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        470M     0  470M    0% /dev


17)设置自动挂载

mount命令的挂载方式,重启后挂载关系会丢失。

linux提供了自动挂载的方式:配置文件/etc/fstab,用来配置设备的挂载信息,系统启动后会自动读取这个目录,执行自动挂载操作。

将下面信息加入到/etc/fstab中,即可实现自动挂载

    /dev/sdb1 /home/xxx/dir1                       xfs     defaults        0 0
    /dev/sdb2 /home/xxx/dir2                       xfs     defaults        0 0
    /dev/sdb3 /home/xxx/dir3                       xfs     defaults        0 0
    /dev/sdb5 /home/xxx/dir5                       xfs     defaults        0 0
    /dev/sdb6 /home/xxx/dir6                       xfs     defaults        0 0
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆卿之

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值