一文教你Linux 磁盘管理

简介: 在Linux中,使用 备名称+分区号 的方式来表示分区,例如:• sda1—第一块硬盘的第一个分区• sda2—第一块硬盘的第二个分区• sdb1—第二块硬盘的第一个分区使用lsblk命令,可以查看所有设备挂载情况


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
目录
相关文章
|
28天前
|
Linux Shell C语言
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
29 1
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
36 1
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux mkfs.ext2 命令使用教程
【Shell 命令集合 磁盘维护 】Linux mkfs.ext2 命令使用教程
37 1
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
31 2
|
28天前
|
存储 算法 Shell
【Shell 命令集合 磁盘维护 】Linux 创建启动磁盘 mkbootdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建启动磁盘 mkbootdisk命令使用教程
28 1
|
28天前
|
存储 安全 Shell
【Shell 命令集合 磁盘维护 】Linux mformat 命令使用教程
【Shell 命令集合 磁盘维护 】Linux mformat 命令使用教程
28 0
|
28天前
|
Shell Linux API
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
31 1
|
28天前
|
Shell Linux C语言
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
33 0
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建Minix文件系统 mkfs.minix 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建Minix文件系统 mkfs.minix 命令使用教程
33 0
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 建立ext2文件系统 mke2fs命令使用教程
【Shell 命令集合 磁盘维护 】Linux 建立ext2文件系统 mke2fs命令使用教程
30 2