1.磁盘分区机制
在Linux中,使用 备名称+分区号 的方式来表示分区,例如:
- sda1—第一块硬盘的第一个分区
- sda2—第一块硬盘的第二个分区
- sdb1—第二块硬盘的第一个分区
使用lsblk
命令,可以查看所有设备挂载情况
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 79G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 975M 0 part [SWAP] sr0 11:0 1 1024M 0 rom
查看更加详细的挂载情况,加入-f参数:
┌──(root💀kali)-[~] └─# lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 ext4 1.0 bb71bd36-b961-41e3-8202-84c2f0bcbdfa 63.2G 13% / ├─sda2 └─sda5 swap 1 4c5a131c-d68c-4ab1-bba2-3e5d00afc269 [SWAP] sr0
2.实用案例:增加一块硬盘并进行分区挂载
虚拟机中添加一块硬盘
右键虚拟机列表中的虚拟机,选择设置:
点击添加,选择硬盘:
一路向下,可以在这里指定新硬盘的容量,最后添加成功:
可以看到,新硬盘已经添加完毕啦:
重启虚拟机,再次查看设备挂载情况,发现多了一块硬盘sdb
:
┌──(root💀kali)-[~/Desktop] └─# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 79G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 975M 0 part [SWAP] sdb 8:16 0 1G 0 disk sr0 11:0 1 1024M 0 rom
进行磁盘分区
fdisk
是 Linux 的磁盘分区表操作工具
语法:
fdisk [-l] 装置名称
选项与参数:
-l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
指定sdb硬盘进行分区:
┌──(root💀kali)-[~/Desktop] └─# fdisk /dev/sdb Welcome to fdisk (util-linux 2.36.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xbd52867c.
输入n添加一个分区:
Command (m for help): n
输入p添加一个主分区:(e表示扩展分区)
Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p
选择分区号,默认为1:
Partition number (1-4, default 1): 1
接着输入两次回车,完成分区:
First sector (2048-2097151, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151, default 2097151): Created a new partition 1 of type 'Linux' and of size 1023 MiB. Command (m for help):
最后,切记输入w
保存分区的修改内容:
Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
分区加入成功:
┌──(root💀kali)-[~/Desktop] └─# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 79G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 975M 0 part [SWAP] sdb 8:16 0 1G 0 disk └─sdb1 8:17 0 1023M 0 part sr0 11:0 1 1024M 0 rom
格式化磁盘
分区加入成功之后,还不能进行挂载,需要先格式化一下磁盘:
其中ext4代表文件格式:
┌──(root💀kali)-[~/Desktop] └─# mkfs -t ext4 /dev/sdb1 mke2fs 1.46.2 (28-Feb-2021) Creating filesystem with 261888 4k blocks and 65536 inodes Filesystem UUID: fa29dd9d-8062-4e8a-bee9-8f121e592e95 Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done ┌──(root💀kali)-[~/Desktop] └─# lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 ext4 1.0 bb71bd36-b961-41e3-8202-84c2f0bcbdfa 63.2G 13% / ├─sda2 └─sda5 swap 1 4c5a131c-d68c-4ab1-bba2-3e5d00afc269 [SWAP] sdb └─sdb1 ext4 1.0 fa29dd9d-8062-4e8a-bee9-8f121e592e95 sr0
进行分区挂载
分区的挂载,使用mount
指令:
注意:使用
mount
进行指令挂载,在系统重启之后挂载关系将会失效!✨
┌──(root💀kali)-[~] └─# mount /dev/sdb1 newdir 1 ⚙ ┌──(root💀kali)-[~] └─# lsblk -f 1 ⚙ NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 ext4 1.0 bb71bd36-b961-41e3-8202-84c2f0bcbdfa 63.2G 13% / ├─sda2 └─sda5 swap 1 4c5a131c-d68c-4ab1-bba2-3e5d00afc269 [SWAP] sdb └─sdb1 ext4 1.0 fa29dd9d-8062-4e8a-bee9-8f121e592e95 921.2M 0% /root/newdir sr0
进行分区卸载
如果我们想取消方才进行的分区挂载,使用umount命令即可:
┌──(root💀kali)-[~] └─# umount /dev/sdb1 1 ⚙ ┌──(root💀kali)-[~] └─# lsblk -f 1 ⚙ NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 ext4 1.0 bb71bd36-b961-41e3-8202-84c2f0bcbdfa 63.2G 13% / ├─sda2 └─sda5 swap 1 4c5a131c-d68c-4ab1-bba2-3e5d00afc269 [SWAP] sdb └─sdb1 ext4 1.0 fa29dd9d-8062-4e8a-bee9-8f121e592e95 sr0
进行永久分区挂载
永久分区挂载,需要修改linux的配置文件内容:
vim /etc/fstab
加入新的挂载关系:
/dev/sdb1 /newdir ext4 defaults 0 0
重启之后,挂载关系将会一直存在:
┌──(root💀kali)-[~/Desktop] └─# lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 │ ext4 1.0 bb71bd36-b961-41e3-8202-84c2f0bcbdfa 63.2G 13% / ├─sda2 │ └─sda5 swap 1 4c5a131c-d68c-4ab1-bba2-3e5d00afc269 [SWAP] sdb └─sdb1 ext4 1.0 fa29dd9d-8062-4e8a-bee9-8f121e592e95 921.2M 0% /newdir sr0
3.磁盘使用情况查询
df
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:
df [-ahikHTm] [目录或文件名]
选项与参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
查看磁盘使用情况:
┌──(root💀kali)-[~/Desktop] └─# df -h Filesystem Size Used Avail Use% Mounted on udev 954M 0 954M 0% /dev tmpfs 198M 1.2M 197M 1% /run /dev/sda1 78G 11G 64G 14% / tmpfs 988M 0 988M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sdb1 989M 24K 922M 1% /newdir tmpfs 198M 64K 198M 1% /run/user/0
du
Linux du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看
语法:
du [-ahskm] 文件或目录名称
选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示
查询etc目录的使用情况,深度为1:
┌──(root💀kali)-[/opt] └─# du -h --max-depth=1 /etc 8.0K /etc/vpnc 4.0K /etc/rc2.d 12K /etc/gtk-2.0 8.0K /etc/python3.9 52K /etc/NetworkManager 8.0K /etc/ipp-usb 4.0K /etc/rc4.d ...
4.磁盘情况实用命令
统计etc目录下面有多少个文件:
┌──(root💀kali)-[/opt] └─# ls -l /etc | grep "^-" | wc -l 108
统计etc目录下面有多少目录:
┌──(root💀kali)-[/opt] └─# ls -l /etc | grep "^d" | wc -l 156
统计etc目录下面有多少个文件(包括子目录里面的):
┌──(root💀kali)-[/opt] └─# ls -lR /etc | grep "^-" | wc -l 1381
统计etc目录下面有多少个文件夹(包括子目录里面的):
┌──(root💀kali)-[/opt] └─# ls -lR /etc | grep "^d" | wc -l 382
以树状显示目录结构:
┌──(root💀kali)-[/opt] └─# tree /home /home └── kali ├── Desktop ├── Documents ├── Downloads ├── Music ├── Pictures ├── Public ├── Templates └── Videos 9 directories, 0 files