linux(centOS7)的基本操作(五) 磁盘、分区、挂载、卸载

时间:2023-03-09 04:49:04
linux(centOS7)的基本操作(五) 磁盘、分区、挂载、卸载

linux的磁盘类型和分区简介

linux的磁盘分为IDE和SCSI,目前以后者居多。

1. IDE磁盘的分区:hd+盘号+分区数字

盘号

  |-a:基本盘

  |-b:基本从属盘

  |-c:辅助主盘

  |-d:辅助从属盘

分区数字

  |-1~4:主分区或扩展分区

  |-5+:逻辑分区

例如,hda3表示第一块IDE磁盘的第3个主分区或扩展分区,hdb5表示第二块IDE磁盘的逻辑分区。

2. SCSI磁盘的分区:sd+盘号+分区数字

盘号

  |-a:基本盘

  |-b:基本从属盘

  |-c:辅助主盘

  |-d:辅助从属盘

分区数字

  |-1~4:主分区或扩展分区

  |-5+:逻辑分区

例如,sda1表示第一块SCSI磁盘的第1个主分区,sdc2表示第三块SCSI磁盘的第2个主分区或扩展分区。

linux的挂载和卸载

1. 挂载和卸载的概念

(1) 我们知道,windows系统有多个盘符,例如C、D、E……等,当用户插入一个U盘时,系统会自动分配给它一个盘符,可能是I。有了这个盘符I,我们就可以在windows的命令行中对U盘中的目录和文件进行操作。

(2) linux系统并没有盘符,它只有一个根目录/,linux磁盘的所有分区都在这个根目录下的某个位置。如果在linux系统中添加一块新磁盘,系统并不会自动给它分配盘符,它也不属于根目录/。这时,在命令行无法对这个新磁盘中的目录或文件进行操作,既无法通过cd命令进入该磁盘,也无法通过ls命令显示它下面的内容。

(3) 挂载类似于windows系统给U盘分配盘符,是将新磁盘跟已经存在的系统目录之间建立联系,让新磁盘"拥有"根目录/下面的某个目录,以便于在命令行中操作它。例如,新添加了一块磁盘分区sdb1,将它挂载到/home/dubhlinn目录,则以后操作/home/dubhlinn目录就相当于操作sdb1分区。挂载后,/home/dubhlinn目录下的子目录和文件也会保存到sdb1分区,而不是原来的分区。

(4) 卸载类似于windows退出U盘,切断磁盘分区与目录之间的联系。卸载后,/home/dubhlinn目录下的子目录和文件会重新回到原来的分区。

2. 查看系统的挂载情况

lsblk [-l] [-f]

其中,-l表示列表方式显示,-f可以显示分区的uuid。

linux(centOS7)的基本操作(五) 磁盘、分区、挂载、卸载

3. 挂载

mount equipment path

其中,equipment为设备位置,path为挂载点。例如,mount /dev/sdb1 /home/dubhlinn。

4. 永久挂载

用上述命令只是临时挂载,重启系统后会失效,要想永久生效,需要改一个配置文件:/etc/fstab,加一行:

/dev/sdb    /home    xfs    defaults    0 0

其中,第一项为设备未知,第二项为挂载点,第三项为分区类型,后面固定不变。

5. 卸载

umount equipment

umount path

即卸载时既可以写磁盘分区,也可以写挂载点目录。例如umount /home/dubhlinn。

使用VMWare添加硬盘示例

1. 关闭linux虚拟机(在系统运行状态下无法添加硬盘),shutdown -h now,设置 → 添加新硬件 → 硬盘,指定大小;

2. 添加分区,fdisk /dev/sdb;

3. 格式化磁盘,指定分区类型(例如xfs、ext4等),mkfs -t xfs /dev/sdb;

4. 挂载,mount /dev/sdb /home;

5. 永久挂载,vim /etc/fstab,加一行:/dev/sdb    /home    xfs    defaults    0 0。

磁盘管理

1. 查询磁盘整体的使用情况

df -h

2. 查询指定目录的使用情况

du [-a] [-c] [-h] [--max-depth=n] path

其中,-a表示包含文件,-c表示显示汇总值,-h表示显示计量单位,--max-depth=n表示统计子目录的深度,path为要查询的目录路径。

3. 查询指定目录下的文件,即以-开头的内容

ls -l [-r] [path] | grep "^-"

其中,-r表示包含子目录下的,path如果不指定则默认为当前目录。

4. 查询指定目录下的子目录,即以d开头的内容

ls -l [-r] [path] | grep "^d"

其中,-r表示包含子目录的子目录,path如果不指定则默认为当前目录。

5. 查询指定目录下的文件数量

ls -l [-r] [path] | grep "^-" | wc -l

其中,-r表示包含子目录下的,path如果不指定则默认为当前目录。

6. 查询指定目录下的子目录数量

ls -l [-r] [path] | grep "^d" | wc -l

其中,-r表示包含子目录的子目录,path如果不指定则默认为当前目录。

7. 以树状结构显示目录下的内容

tree [path]

其中,path为要显示的目录路径,如果不指定默认为当前目录。