20. Linux磁盘分区与挂载

1. 原理介绍

1.1 对Linux来说,无论有几个分区,分给哪一个目录使用,归根结底就只有一个根目录,一个独立且唯一的文件结构。Linux中每个分区都是用来组成整个文件系统的一部分。

1.2 Linux采用了一种叫“载入”的处理方法,其整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入一个分区将使得它的存储空间在一个目录下获得。

2. lsblk查看目前的硬盘分区及mountpoint挂载点

3. 硬盘说明

3.1 Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘

3.2 对于IDE硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里指IDE硬盘。“x”为盘号,a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘。~是一个数字,代表分区,前四个分区由1-4表示,为主分区或者扩展分区,从5开始就是逻辑分区。例如hda3表示为第一个IDE硬盘的第三个主分区或扩展分区,hdb2表示第二个IDE硬盘上的第二个主分区或扩展分区。

3.3 对于SCSI硬盘,驱动器标识符为“sdx~”,其中sd表示这是SCSI硬盘,其余和IDE硬盘表示方法一样。

我的Linux磁盘分区,lsblk

4. 查看所有设备挂载情况

用lsblk或者lsblk -f

lsblk -f

lsblk -f 可以看的更详细。UUID为40位的唯一标识符,每个分区都会有一个。

5. 给Linux系统新挂载一块硬盘

5.1 给设备or虚拟机添加新的硬盘

重启系统后,用lsblk可以看到新的硬盘,但是该硬盘尚没有任何分区。

5.2 用分区命令fdisk给新硬盘分区

fdisk /dev/sdb 进入fdisk配置硬盘

按n键创建新的分区

根据提示自定义新分区的配置

最后按w将新的分区写入硬盘并保存,否则刚才的配置就不会生效。

此时用lsblk就可以看到新的硬盘分区了,但是lsblk -f看到,这个新的分区没有UUID。

5.3 格式化新的分区

格式化新的分区,为这个分区指定文件类型。

mkfs -t ext4 /dev/sdb1

5.4 挂载和卸载

在你想要挂载的地方创建一个目录,用于硬盘挂载,

mkdir newdisk

mount /dev/sdb1 /newdisk

卸载用 umount /dev/sdb1或者 umount /newdisk

5.5 重要:重启以后挂载会失效

修改/etc/fstab 文件,然后 mount -a 或者再重启就会永久挂载了。

/etc/fstab可以添加新硬盘分区的UUID也可以添加/dev/sdb1这样的路径。

具体/etc/fstab这个文件的详细解释可参考:/etc/fstab文件详解

6. 磁盘情况查询

6.1 df -h

可以查看磁盘列表和用量。

6.2 du -h 指定目录

查询指定目录的使用情况,不写目录就默认查询当前目录的用量。

选项,

    -s 指定目录占用大小汇总

    -h 带计量单位

    -a 含文件

    --max-depth=1 子目录深度

    -c 列出明细的同时,增加汇总值

例如,查询/opt 目录的磁盘占用情况,查询深度为1.

du -ha --max-depth=1 /opt

-h给size带上了单位,-a可以显示出文件,没有-a就只显示子目录的大小。

在写-c可以显示汇总信息(total)。

du -hac --max-depth=1 /opt

7. 磁盘相关使用指令

7.1 统计指定目录下文件的个数

ll /opt | grep "^-" | wc -l 

其中,grep支持正则表达式,"^-"表示以-开头的文件,那也就是普通文件,wc -l统计这些文件的个数

7.2 统计指定目录下目录的个数

ll /opt | grep "^d" | wc -l

与上面不同的就是grep 查询以d开头的文件,也就是目录了。 

7.3 统计指定目录下文件的个数,包括子目录下的文件

ls -lR /opt | grep "^-" | wc -l

其中ls -R表示递归列举,那也就是会把子目录下的文件都列举出来。

7.4 统计指定目录下目录的个数,包括子目录下的目录

ls -lR /opt | grep "^d" | wc -l

7.5 以树状显示目录结构

tree 目录名

例如 tree /opt

默认没安装,可以yum install tree进行安装。

你可能感兴趣的:(20. Linux磁盘分区与挂载)