Linux 磁盘管理

Posted 行稳方能走远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 磁盘管理相关的知识,希望对你有一定的参考价值。

参考:Ubuntu 下的磁盘管理
作者:~莘莘
发布时间: 2021-07-11 17:51:08
网址:https://blog.csdn.net/lcx1837/article/details/118633544?spm=1001.2014.3001.5501

Linux 磁盘管理基本概念

Linux 的磁盘管理体系和Windows 有很大的区别,在Windows 下经常会遇到“分区”这个概念,在Linux 中一般不叫“分区”而叫“挂载点”。“挂载点”就是将一个硬盘的一部分做成文件夹的形式,这个文件夹的名字就是“挂载点”,不管在哪个发行版的Linux 中,用户是绝对看到不到C 盘、D 盘这样的概念的,只能看到以文件夹形式存在的“挂载点”.
文件/etc/fstab 详细的记录了Ubuntu 中硬盘分区的情况,如图2.8.1.1 所示:

在图2.8.1.1 中有一行“/ was on /dev/sda1 during installation”,意思是根目录“/”是在/dev/sda1上的,其中“/”是挂载点,“/dev/sda1”就是我们装Ubuntu 系统的硬盘。由于我们的系统是安装在虚拟机中的,因此图2.8.1.1 没有出现实际的硬盘。可以通过如下命令查看当前系统中的磁盘:

ls /dev/sd*

上述命令就是打印出所有以/dev/sd 开头的设备文件,如图2.8.1.2 所示:

在图2.8.1.2 中有四个磁盘设备文件,其中sd 表示是SATA 硬盘或者其它外部设备,最后面的数字表示该硬盘上的第n 个分区,比如/dev/sda1 就表示磁盘sda 上的第一个分区。图2.8.1.2中都是以/dev/sda 开头的,说明当前只有一个硬盘。如果再插上U 盘、SD 卡啥的就可能会出现/dev/sdb,/dev/sdc 等等。如果你的U 盘有两个分区那么可能就会出现/dev/sdb1、dev/sdb2 这样
的设备文件。比如我现在插入我的U 盘,插入U 盘会提示U 盘是接到主机还是虚拟机,如图2.8.1.3 所示:

设置好图2.8.1.3 以后,点击“确定”按钮U 盘就会自动连接到虚拟机中,也就是连接到Ubuntu 系统中,我们再次使用命令“ls /dev/sd*”来查看当前的“/dev/sd*”设备文件,如图2.8.1.4所示:

从图2.8.1.4 可以看出,相比图2.8.1.2 多了/dev/sdb 和/dev/sdb1 这两个文件,其中/dev/sdb就是U 盘文件,/dev/sdb1 表示U 盘的第一个分区,因为我的U 盘就一个分区

磁盘和目录的容量查询命令

df:列出文件系统的整体磁盘使用量,主要查看单个文件系统的使用量。
du:评估某个目录下文件的使用量大小,主要查看单个文件的大小。


磁盘管理命令

本节我们学习一下跟磁盘操作有关的命令,这些命令如下:

1、挂载分区命令mount

我们创建好分区并且格式化(3、4讲到)以后肯定是要使用硬盘或者U 盘的,那么如何访问磁盘呢?比如我的U 盘就一个分区,为/dev/sdb1,如果直接打开文件/dev/sdb1 会发现根本就打不开!我们需要将/dev/sdb1 这个分区挂载到一个文件夹中,然后通过这个文件访问U 盘,磁盘挂载命令为mount,命令格式如下:

mount [参数] -t [类型] [设备名称] [目的文件夹]

命令主要参数有:

-V 显示程序版本。
-h 显示辅助信息。
-v 显示执行过程详细信息。
-o ro 只读模式挂载。
-o rw 读写模式挂载。
-s-r 等于-o ro。
-w 等于-o rw。

挂载点是一个文件夹,因此在挂载之前先要创建一个文件夹,一般我们把挂载点放到“/mnt”目录下,在“/mnt”下创建一个tmp 文件夹,然后将U 盘的/dev/sdb1 分区挂载到/mnt/tmp 文件夹里面,操作如图2.8.2.3 所示:

在图2.8.2.3 中我们将U 盘以fat 格式挂载到目录/mnt/tmp 中,然后我们就可以通过访问/mnt/tmp 来访问U 盘了。

sudo mount /磁盘设备文件 /创建好的挂载目录文件夹		// 挂载
sudo umount /挂载目录								// 卸载

sudo mount -o iocharset=utf8 /磁盘设备文件 /创建好的挂载目录文件夹
//普通挂载中文目录名会出现乱码,使用此方法挂载中文目录名解决中文乱码

2、卸载命令umount

当我们不再需要访问已经挂载的U 盘,可以通过umount 将其从卸载点卸除,命令格式如下:

umount [参数] -t [文件系统类型] [设备名称]

-a 卸载/etc/mtab 中的所有文件系统。
-h 显示帮助。
-n 卸载时不要将信息存入到/etc/mtab 文件中
-r 如果无法成功卸载,则尝试以只读的方式重新挂载。
-t<文件系统类型> 仅卸载选项中指定的文件系统。
-v 显示执行过程。

上面我们将U 盘挂载到了文件夹/mnt/tmp 里面,这里我们使用命令umount 将其卸载掉,操作如图2.8.2.4 所示:


在图2.8.2.4 中,我们使用命令umount 卸载了U 盘,卸载以后当我们再去访问文件夹/mnt/tmp的时候发现里面没有任何文件了,说明我们卸载成功了。

3、磁盘分区命令fdisk

如果要对某个磁盘进行分区,可以使用命令fdisk,命令格如下:

fdisk [参数]

主要参数如下:

  • -b<分区大小> 指定每个分区的大小。
  • -l 列出指定设备的分区表。
  • -s<分区编号> 将指定的分区大小输出到标准的输出上,单位为块。
  • -u 搭配“-l”参数,会用分区数目取代柱面数目,来表示每个分区的起始地址。

比如我要对U 盘进行分区,千万不要对自己装Ubuntu 系统进行分区!!!可以使用如下命令:

sudo fdisk /dev/sdb

结果如图2.8.2.1 所示:

在图2.8.2.1 中提示我们输入“m”可以查看帮助,因为fdisk 还有一些子命令,通过输入“m”可以查看都有哪些子命令,如图2.8.2.2 所示:

图2.8.2.2 中常用的命令如下:

  • p 显示现有的分区
  • n 建立新分区
  • t 更改分区类型
  • d 删除现有的分区
  • a 更改分区启动标志
  • w 对分区的更改写入到硬盘或者存储器中。
  • q 不保存退出。
sudo fdisk -l				//列出所有分区信息
sudo fdisk -l /dev/sdb		//列出 sdb 分区信息
sudo fdisk /dev/sda			//操作 sda 分区
sudo fdisk /dev/sdb			//操作 sdb 分区

删除分区:

添加新分区:

解析: 创建1号分区时,第一个扇区默认是2048,直接输入,最后一个扇区:假设需要创建的1号分区大小为1GB,

(1GB=1,073,741,824B)/512B=2097152(一个扇区512个字节),所以最后一个扇区=2097152+2048=2,099,200

创建2号分区时,第一个扇区默认是2,101,248=2099200+2048,最后一个扇区=2101248+2097152=4,198,400

创建3号分区时,第一个扇区默认是4,200,448=4198400+2048,最后一个扇区使用默认值(即最大值,对应磁盘所剩下的最大空间)

操作完毕后,输入 w 命令写入磁盘。

4、格式化命令mkfs

使用命令fdisk 创建好一个分区以后,我们需要对其格式化,也就是给这个分区上创建一个文件系统,Linux 下的格式化命令为mkfs,命令格式如下:

mkfs [参数] [-t 文件系统类型] [分区名称]

主要参数如下:
fs 指定建立文件系统时的参数
-V 显示版本信息和简要的使用方法。
-v 显示版本信息和详细的使用方法。

比如我们要格式化U 盘的分区/dev/sdb1 为FAT 格式,那么就可以使用如下命令:

mkfs –t vfat /dev/sdb1
sudo mkfs -t vfat /dev/sdb1			//格式化 /dev/sdb1 分区为 FAT 格式(文件系统)
sudo mkfs -t vfat /dev/sdb2			//格式化 /dev/sdb2 分区为 FAT 格式(文件系统)
sudo mkfs -t vfat /dev/sdb3			//格式化 /dev/sdb3 分区为 FAT 格式(文件系统)


以上是关于Linux 磁盘管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux磁盘管理的Linux管理命令

Linux磁盘管理系列 — 磁盘配额管理

【Linux命令】磁盘管理(逻辑卷与物理卷)

Linux 磁盘管理

Linux 下磁盘管理--逻辑卷--LV

Linux 磁盘管理