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硬盘表示方法一样。
4. 查看所有设备挂载情况
用lsblk或者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)。
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进行安装。