在Linux系统中,创建磁盘并进行分区的步骤通常包括确认磁盘设备、创建磁盘、创建分区表、格式化分区、创建挂载点以及挂载分区等。以下是一个详细的步骤说明及示例:
一、确认磁盘设备
lsblk
是一个在 Linux 和其他类 Unix 操作系统中用于列出所有块设备及其属性的命令。这个命令非常有用,因为它可以显示设备的挂载点、文件系统类型、大小等信息,帮助用户了解系统的存储设备布局。
基本用法
(1)、 在终端中直接输入 lsblk
,将显示系统中所有块设备的列表,包括硬盘、分区、光盘驱动器、RAM 盘等。输出通常包括设备名称、主要/次要编号、设备大小、类型、挂载点等信息。
由此可得:一块磁盘/dev/sda,磁盘有两个分区/dev/sda1和/dev/sda2
解释输出
- NAME: 设备名称,如
sda
表示第一个 SATA 硬盘,sr0
表示第一个光驱。 - MAJ:MIN: 主次设备号,用于唯一标识设备。
- RM: 是否是可移除设备(removable),1 表示是,0 表示否。
- SIZE: 设备大小。
- RO: 是否只读(read-only),1 表示是,0 表示否。
- TYPE: 设备类型,如
disk
表示硬盘,part
表示分区,rom
表示只读存储器。 - MOUNTPOINT: 挂载点,即设备挂载的文件系统路径。
使用选项
lsblk
命令提供了多种选项,以更详细地显示设备信息或过滤输出。
-f, --fs:显示文件系统类型。
(2)、使用fdisk -l
命令查看当前系统的磁盘情况,找到需要分区的磁盘设备。例如,如果要对/dev/sdb
进行分区,需要先确认该设备是否存在。
由此可得:一块磁盘/dev/sda,磁盘有两个分区/dev/sda1和/dev/sda2,/dev/sda2的LVM分区创建了两个逻辑卷
-
物理磁盘 /dev/sda
- 容量:21.5 GB(21474836480 字节)
- 扇区总数:41943040
- 扇区大小:逻辑和物理都是512字节
- I/O 大小:最小和最佳都是512字节
- 磁盘标签类型:DOS
- 磁盘标识符:0x000cc413
分区:
- /dev/sda1:这是一个启动分区(由星号 * 标记),起始扇区是2048,结束扇区是2099199,共有1048576个扇区(大约512 MB)。文件系统类型是Linux(ID 83)。
- /dev/sda2:这是一个LVM(逻辑卷管理)分区,起始扇区是2099200,结束扇区是41943039,共有19921920个扇区(大约9.5 GB)。文件系统类型是Linux LVM(ID 8e)。
-
逻辑卷
- /dev/mapper/centos-root:这是一个逻辑卷,容量为18.2 GB(18249416704 字节),扇区总数为35643392。它是基于/dev/sda2这个LVM分区创建的。
- /dev/mapper/centos-swap:这是另一个逻辑卷,用作交换空间,容量为2147 MB(2147483648 字节),扇区总数为4194304。它也是基于LVM管理的,但可能是从/dev/sda2或其他LVM物理卷中分配的。
注意事项
- LVM:逻辑卷管理(LVM)允许您在物理磁盘上更灵活地管理存储空间。您可以创建、扩展、缩小和删除逻辑卷,而无需重新分区物理磁盘。
- 交换空间:/dev/mapper/centos-swap是一个交换分区,用于当物理内存不足时,系统可以使用硬盘上的这部分空间作为虚拟内存。
- 启动分区:/dev/sda1是启动分区,包含引导加载程序和可能的系统初始化文件。这个分区通常是只读的,并且在启动时首先被访问。
二、创建磁盘
目标:在虚拟机中添加一块SCSI类型的8GB的硬盘。
选择"虚拟机"→"设置"→选中硬盘,单击"添加"按钮,根据向导进行"下一步",选择磁盘大小 8GB,然后单击"完成"按钮,最后单击"确定"按钮,重启系统后才能加载新硬盘。
分步骤操作:
(1)选择虚拟机
(2)选择设置
(3)选中硬盘,单击"添加"按钮
(4)根据向导进行"下一步"
(6)选择推荐SCSI磁盘类型
(7)创建虚拟磁盘,直接下一步
(8)选择磁盘大小 8GB
(9)点击“完成”并“确定”
当我们创建完成后通过lsblk命令查看,结果如下:
结果并没有生成新磁盘sdb,因为最后还要进行重启,重启之后才能生效,所以使用命令reboot 进行虚拟机重启
reboot
重启之后再次检查:
三、创建分区表
1.使用fdisk
命令进入分区操作界面。
fdisk /dev/sdb
结果如下:
2.输入m获取帮助。
结果如下:
3.输入n
新建一个分区。
结果如下:
4.根据提示输入分区类型(主分区或扩展分区)和分区编号。主分区用于存放操作系统和数据,扩展分区用于突破四个主分区的限制,但不能直接使用,需要划分成逻辑分区。这里输入p创建一个主分区
结果如下:
5.输入分区号,输入1,也可以直接点击enter键
结果如下:
6.输入起始扇区和分区大小。可以使用默认值或根据需求自定义。(这里我直接点击enter键)
结果如下:
7.输入p
查看已创建的分区信息,确保分区创建正确。
结果如下:
可以看到磁盘/dev/sdb 成功创建分区/dev/sdb1
8.输入w
保存并退出fdisk
。
结果如下:
四、格式化分区(创建文件系统)
(1)输入mkfs
,然后按下Tab键两次,系统会列出所有以mkfs.
开头的命令,这些命令通常对应于不同的文件系统类型。结果如下:
(2)使用mkfs
命令对分区进行格式化。以ext4
文件系统为例,如果新分区为/dev/sdb1
,则可以使用以下命令进行格式化:
mkfs.ext4 /dev/sdb1
或
mkfs -t ext4 /dev/sdb1
结果如下:
在格式化分区前后查看/dev/sdb1有哪些变化:
格式化之前使用命令:lsblk -f 的结果如下:
可以发现格式化之前/dev/sdb1的UUID并没有
格式化后:
可以发现/dev/sdb1分区有了自己的ID,但是没有挂载点,所以需要下一步——挂载
补充:UUID可以用于唯一标识分区和文件系统。这样,即使磁盘的挂载点发生变化,系统也能通过UUID找到正确的分区和文件系统。
补充:常见的文件系统类型及特点
1. FAT (File Allocation Table)
特点:
- 简单性:FAT文件系统结构简单,易于理解和实现。
- 兼容性:广泛兼容各种操作系统,包括Windows、Mac OS和Linux。
- 限制:支持的最大文件大小和分区大小有限,FAT32通常限制为4GB。
- 性能:不适合大容量存储,因为文件分配效率不高。
- 使用场景:常用于USB闪存盘和小型存储设备。
2. NTFS (New Technology File System)
特点:
- 高级特性:支持文件权限、加密、磁盘配额和事务日志。
- 大容量:理论上支持的最大分区大小可达16EB,单个文件大小可达16TB。
- 性能:优化的磁盘空间分配和错误恢复机制。
- 兼容性:虽然主要在Windows系统中使用,但也可以在Linux中读写(需要额外的软件支持)。
- 使用场景:Windows操作系统的默认文件系统,适用于大多数内部硬盘。
3. ext4 (Fourth Extended Filesystem)
特点:
- 稳定性和性能:是Linux系统中广泛使用的文件系统,具有良好的稳定性和性能。
- 大文件支持:支持16TB的文件大小和1EB的文件系统大小。
- 高级特性:支持日志记录、扩展属性、稀疏文件等。
- 兼容性:主要在Linux中使用,Windows需要第三方工具才能访问。
- 使用场景:适用于大多数Linux发行版的内部硬盘。
4. APFS (Apple File System)
特点:
- 优化SSD:专为SSD存储设计,减少写入放大和优化性能。
- 克隆和快照:支持文件系统级别的克隆和快照功能。
- 加密:支持完整磁盘加密和单个文件加密。
- 兼容性:专为macOS设计,不支持Windows和Linux原生访问。
- 使用场景:macOS High Sierra及以后版本的默认文件系统。
5. HFS+ (Hierarchical File System Plus)
特点:
- 兼容性:在macOS中广泛使用,也可在Windows上通过第三方软件访问。
- 限制:单个文件大小限制为16TB,分区大小限制为8EB。
- 性能:对于大文件和大量小文件的性能不如APFS。
- 使用场景:在APFS之前是macOS的默认文件系统,现在主要用于旧版macOS系统和外部存储设备。
6. XFS (X File System)
特点:
- 高性能:设计用于处理大量数据,适用于大型文件系统。
- 可扩展性:支持非常大的文件系统大小,可达18EB。
- 日志记录:确保文件系统的一致性。
- 兼容性:主要在Linux中使用,Windows和macOS不支持。
- 使用场景:适用于需要高性能和高容量的企业级存储解决方案。
五、创建挂载点
(1)使用mkdir
命令在/
目录下创建一个挂载点。例如,为/dev/sdb1
分区创建一个名为/mydisk
的挂载点(相当于创建一个目录,位置随意):
mkdir /mydisk
补充:如何理解挂载?
创建好文件系统的存储设备并不能马上使用,必须把它挂载到文件系统中才可以使用。在Linux 系统中无论是硬盘、光盘还是 U 盘,都必须经过挂载才能进行文件系统存取操作。所谓挂载就是将存储介质的内容映射到指定的目录中,此目录为该设备的挂载点,这样,对存储介质的访问就变成了对挂载点目录的访问。一个挂载点多次挂载不同设备或分区时,最后一次有效;一个设备或分区可以多次挂载到不同的挂载点。
通常,硬盘上的系统分区会在Linux的启动过程中自动挂载到指定的目录,并在关机时自动卸载,光盘等可移动存储介质可以在启动时自动挂载。也可以在需要时手动挂载或卸载。
为什么挂载后这个目录下以前的内容将不可用(如果目录不为空)。
因为Linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录,所以要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。
六、挂载分区
挂载文件系统,目前有两种方法:一是通过mount命令手动挂载,另一种方法是通过/etc/fstab文件开机时自动挂载。
1.临时挂载:使用mount
命令将分区挂载到指定的挂载点。例如,将/dev/sdb1
挂载到/mydisk
:
格式:mount [选项] [设备名] [装载点]
mount /dev/sdb1 /mydisk
执行命令之前使用lsblk -f 查看:
之后:
注意:这种方法只是临时挂载,当你重启时虚拟机就会断开,所以需要实现自动挂载
2.永久挂载:编辑/etc/fstab
文件,将新分区的挂载信息添加到文件中,以实现开机自动挂载。添加以下内容到/etc/fstab
文件的末尾:
(1)输入命令编辑文件
vim /etc/fstab
进入之后,结果如下:
(2)输入i进入编辑模式,将下面的内容写入进去
/dev/sdb1 /mydisk ext4 defaults 0 0
结果如下:
(3)写完之后点击esc,然后输入 :wq 保存并退出
或者另一种更快的方式:
echo '/dev/sdb1 /mydisk ext4 defaults 0 0' >> /etc/fstab
七、删除挂载
卸载(umount)是将存储设备与目录树中的目录解除关联的过程。在卸载之前,必须确保没有进程正在使用该存储设备上的文件或目录。
格式:umount [选项] 装载点(既可以是设备名也可以是挂载目录名)
umount /dev/sdb1
或
umount /mydisk
删除之前:
之后:
注意事项:
重要的是要理解,umount
命令并不会删除存储设备上的任何数据或文件系统结构。它只是简单地使操作系统不再能够通过特定的挂载点访问这些数据。如果你希望删除存储设备上的文件系统,你需要使用格式化工具(如mkfs
)来重新格式化该设备。
另外,需要注意的是,在卸载文件系统之前,必须确保没有任何进程正在使用该挂载点上的文件或目录。如果尝试卸载一个正在被使用的文件系统,umount
命令可能会失败,并返回错误消息。在这种情况下,你可能需要使用umount -f
(强制卸载)选项,但请注意,这可能会导致数据丢失或文件系统损坏,因此通常不推荐这样做。更安全的方法是先终止所有使用该挂载点的进程,然后再执行umount
命令。