在Linux系统中,磁盘管理是一个必学的知识点。正确地进行磁盘分区、格式化和挂载可以确保我们能够充分利用磁盘空间并高效地存储和访问数据。
相比于Windows系统中的简单盘符管理,Linux中的磁盘管理更加复杂且灵活。在Linux系统中,一切设备都存储在/dev目录下,如磁盘、键盘、鼠标等。因此,如果要使用磁盘,我们需要对其进行分区、格式化和挂载等操作,以便将磁盘挂载到已知的文件夹下才可以正常使用。
在实操Linux磁盘管理前,最好先了解什么是磁盘和文件系统才可以进行快速实操。
磁盘的内部结构及原理(详细)
轻松学Linux文件系统(Ext2/Ext3/Ext4)
设置中文命令行(设置完重启即可)
若使用Ubuntu且想SSH登录则参考这篇文章:跳转
🔔
实操Linux磁盘管理 【上】(分区、格式化、挂载)
实操Linux磁盘管理 【下】(SWAP、LVM、RAID)
磁盘分区是将物理磁盘划分为逻辑部分的过程。当我们购买一个硬盘时,它通常是一个连续的存储单元,被称为未分区的空间。通过进行磁盘分区,我们可以将硬盘划分为多个逻辑部分,每个部分被称为分区。
在Linux系统中,可以使用各种工具来进行磁盘分区,如fdisk、gdisk等。通过这些工具,我们可以选择要分区的磁盘,并指定分区的大小、类型等信息。比如对设备分区,每个分区都会被分配成一个唯一的设备名(如 、 等),并可以在文件系统中进行访问和管理。
分区前要搞明白自己磁盘有多大,2T以内可以使用MBR分区也可以使用GPT分区,但是超过2T必须使用GPT分区;MBR分区表请使用fdisk分区,GPT分区表请使用gdisk分区!
若你的磁盘大小在2T以内的话,是可以使用fdisk命令来进行MBR分区的哟,切记超过2T的盘千万不要使用这个fdisk命令,因为你会发现,再怎么分区都不会超过2T,那就代表你剩下的容量无法被使用到,还有就是最好可以往电脑插入另外一块盘测试。
为"/dev/sdc"磁盘设备进行基本的分区:
删除一个分区,并且将"/dev/sdc3"更改为FAT12分区:
使用 p 选项查看分区信息:
- 使用fdisk命令时,请小心操作,确保正确选择设备文件名。
- 在对磁盘进行分区操作前,务必备份重要数据,以防止数据丢失。
- 若出现的错误提示,说明fdisk命令未安装。
由于fdisk命令不能很好的支持GPT分区;而MBR分区不支持大于2T的分区,对于超过2T的硬盘分区来说只能使用GPT分区,所以就要使用gdisk命令;gdisk也可以处理MBR分区的硬盘,甭管硬盘多大,都可以分区。
进入”/dev/sdf“分区的磁盘并新增分区:
分区的查询:
删除和保存:
1:lsblk命令
lsblk命令其实是列出系统上的所有磁盘列表(全称:List Block Device)
2:blkid命令
3:parted命令
parted命令是列出磁盘的分区表类型与分区类型(这里暂且不说它的分区)
格式化是在对磁盘进行分区后,对某个分区进行格式化操作后以准备存储数据。格式化会清空该分区中的所有数据,并在磁盘上创建一个新的文件系统,以便操作系统可以正确地读取和写入数据。分区格式化的本质就是需要在分区上创建一个文件系统;而文件系统是组织和访问数据的方式,包括文件和目录的结构,数据的存储和检索,以及权限、属性和元数据的管理。一般文件系统的类型如Windows支持NTFS和FAT32,而Linux支持ext4和XFS等;我们需要按照实际需求而创建不同的文件系统。
格式其实就是创建文件系统(make filesystem),所以说创建系统的命令也就是,它只是一个综合指令;当我们创建ext4文件系统时则需要写成 ,其实本质上是调用命令,我们也可以直接写成 (推荐) 来直接创建。
通过上面可以知道和都是用于创建文件系统的命令,具体看下面说明。
它是一个通用的命令,用于创建各种不同类型的文件系统,可以根据指定的文件系统类型来创建。它可以创建的文件系统有ext2、ext3、ext4、bfs、ntfs等。mkfs命令提供了更广泛的选项和功能,适用于不同操作系统和场景。但是一般不推荐直接使用命令,而是使用如等命令文件。
1:mkfs.ext2~4命令
是mkfs的一个特定实现,专门提供了一些特定于ext文件系统的一个专门的工具。是mkfs.ext2,mkfs.ext3,mkfs.ext4的衍生命令,其用法也是和这些命令一样。
1:tune2fs命令
2:dumpe2fs命令
这个命令是一个用于显示ext2、ext3、ext4文件系统详细信息的命令行工具。它可以显示文件系统的超级块、块组描述符、inode表、目录结构、块位图、inode位图等信息。
将存储设备(如硬盘、分区、网络存储等)与文件系统关联起来,并通过挂载的方式挂载到任意根目录内的挂载点上,这样文件系统就能够访问我们挂载的存储设备上数据了。在计算机中,存储设备通常被划分为多个分区或卷。每个分区都可以包含一个独立的文件系统。然而这些文件系统并不会自动在文件系统层次结构中可用,需要通过挂载将其与特定的目录关联起来。具体来说挂载涉及以下概念:
- 存储设备: 可以是物理磁盘、分区、USB驱动器、网络存储等。每个存储设备都有一个唯一的设备名称,例如/dev/sda、/dev/sdb1等。
- 文件系统: 存储设备上的数据组织和管理方式,例如ext4、NTFS、FAT32等。每个文件系统都有自己的特性和属性。
- 挂载点: 是文件系统在文件系统层次结构中的位置,也是存储设备连接的目标。它是一个现有的空目录,用于访问存储设备上的文件和文件夹。
- 挂载命令: 用于将存储设备与指定的挂载点关联起来的命令。在Linux中使用mount命令执行挂载操作。
通过挂载,文件系统的目录结构和文件可以在挂载点处访问,并与其它文件系统协同工作。例如将USB闪存驱动器挂载到/mnt目录下,可以通过/mnt目录来浏览和操作闪存驱动器中的文件。需要注意的是,只有具备足够权限的用户(通常是root或使用sudo)才能执行挂载操作。此外挂载是一种临时操作,系统重启后需要重新挂载设备,除非将其添加到文件中以实现自动挂载。
- 一个文件系统不应该被重复挂载在不同的挂载点(目录)中。
- 单一目录不应该重复挂载多个文件系统。
- 要作为挂载点的目录,理论上应该都是空目录才是。
尤其后两点!如果挂载的挂载点内目录不是空的,那么挂载了文件系统之后,原目录下的东西就会暂时地消失。举个例子,假设你的/home原本与根目录(/)在同一个文件系统中,底下原本就有/home/test与/home/vbird两个目录。然后你想要加入新的磁盘,并且直接挂载到了/home底下,那么当你挂载上新的分区槽时,则/home目录显示的是新分区槽内的资料,至于原先的test与vbird这两个目录就会暂时的被隐藏掉了,注意是隐藏而不是覆盖! 等到新分区槽被卸除之后,则/home原本的内容就会再次地跑出来。
- 确认磁盘或分区:使用工具如或来确定要挂载的磁盘或分区的设备名称;例如 /dev/sda、 /dev/sdb1等。
- 创建挂载点:选择一个空目录作为挂载点。可使用命令创建目录,如mkdir /mnt/mydisk。
- 执行挂载:使用命令将磁盘或分区挂载到目标目录上(待挂载的设备上需要存在文件系统才可被挂载)。
- 访问磁盘内容:现在就可以通过挂载点路径(此处为/mnt/mydisk)来访问磁盘上的文件和文件夹。
- 自动挂载:若希望在每次系统启动时自动挂载磁盘,您可以将相应的挂载信息添加到/etc/fstab文件中。
- 执行卸载:可以使用umount命令来卸载挂载的磁盘或分区。
挂载设备/dev/vdb1到挂载点/mnt/game下:
使用LABEL或UUID当挂载的设备挂载到/mnt/videos下:
挂载后的设备可以通过 或 来查看是否被挂载
直接将已挂载的文件系统给它卸载掉!卸除之后可以使用df或mount命令看看是否还存在目录树中。
手动处理mount不是很人性化,我们总是需要让系统自动在开机时进行挂载的!这样免得我们每次开机都要挂载一遍;所以这一小节将介绍 /etc/fstab这个文件;我们只需要修改一下/etc/fstab即可,不过在开始前说一些系统挂载的限制:
- 根目录(/)是必须挂载的,而且一定要先于其它mount point(挂载点)被挂载进来。
- 其它mount point(挂载点)必须为任意已建立的目录,但一定要遵守必须的系统目录架构原则(FHS)
- 所有mount point(挂载点)在同一时间之内,只能挂载一次。
- 所有partition(分区)在同一时间之内,只能挂载一次。.
- 如若进行卸除,您必须先将工作目录移到mount point(及其子目录)之外。
查看挂载配置文件的内容
其实/etc/fstab(filesystem table)就是将我们利用mount指令进行挂载时的所有选项与参数写入到了这个文件了。除此之外/etc/fstab还加入了dump选项来备份用指令的支持!还有一个fsck选项用来做开机时是否进行文件系统检验功能;这个文件的内容共有六个字段,详细介绍如下:
上面我们说了常见ext类型的文件系统的挂载,但是遇到一些特殊的设备则如何进行挂载?