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。
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为要显示的目录路径,如果不指定默认为当前目录。