一文教你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
目录
相关文章
|
7月前
|
存储 监控 Linux
Linux: 检测磁盘坏块 你得会吧!
Linux: 检测磁盘坏块 你得会吧!
409 19
Linux: 检测磁盘坏块 你得会吧!
|
6月前
|
Linux
在线对Linux进行磁盘扩容的技术指南。
综上所述,Linux磁盘扩容的过程,重要的不仅是技术,更是对每一步骤的深刻理解和投入的爱心。只要手握正确的工具,我们不仅能满足"孩子"的成长需求,还能享受其中的乐趣和成就。
392 10
|
7月前
|
监控 固态存储 Linux
如何判断Linux磁盘是SSD还是HDD?
总的来说,判断磁盘是SSD还是HDD并不复杂,只需要使用正确的命令和方法,就可以轻松得到结果。希望这些信息对你有所帮助,如果你还有其他问题,欢迎随时提问。
620 15
|
Ubuntu Linux Shell
Linux系统中如何查看磁盘情况
【9月更文挑战第3天】在Linux系统中,有多种方式查看磁盘情况。可通过命令行工具`df`查看文件系统磁盘使用情况,选项`-h`以人类可读格式显示,`-T`显示文件系统类型;`du`命令显示目录或文件磁盘使用情况,`-h`以人类可读格式显示,`-s`仅显示总计;`fdisk -l`列出磁盘和分区信息。此外,图形界面的磁盘管理工具和文件管理器也可用于查看磁盘使用情况。这些方法有助于更好地管理磁盘空间。
1293 4
|
8月前
|
Linux
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
681 10
|
存储 监控 安全
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
|
10月前
|
Ubuntu Linux 网络安全
Linux磁盘挂接教程
Linux磁盘挂接教程
175 14
|
存储 Linux 5G
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
这篇文章介绍了LVM(逻辑卷管理)如何提供灵活的磁盘管理方式,允许动态调整逻辑卷的大小而不会丢失数据。
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
|
Unix Linux 对象存储
Linux 磁盘管理
Linux 磁盘管理
117 1
|
存储 监控 Linux