【Linux】如何创建和管理存储设备、分区、文件系统和交换空间?


hello大家好😊

先导知识❓

分区

为什么要分区

磁盘分区就是将硬盘驱动器划分为多个逻辑存储单元,这些单元称为分区。然后我们就可以使用不同的分区执行不同的功能。这样做有利于隔离数据、限制空间使用、创建用于内存交换的单独区域

💬 就好像把一座城市划分为多个区域,各区域之间在逻辑上相互隔离,比如住宅区、商业区、工业区等等

两种分区方案

  • MBR分区方案。
    此方案支持最多四个主分区。在Linux 系统上,我们可以使用扩展分区和逻辑分区来创建最多15个分区。由于分区大小数据以32位值存储,使用MBR 方案分区时,最大磁盘和分区大小为
    2 TiB。
  • GPT分区方案
    GPT最多可提供128个分区。由于GPT为逻辑块地址分配64位,这就使得 GPT可支持最多8ZiB的分区和磁盘。
    除解决 MBR分区方案的限制以外,GPT 还可提供一些其他功能特性和优势。GPT 使用全局唯一标符(GUID)来识别每个磁盘和分区。与 MBR 存在单一故障点不同,GPT 提供分区表信息的冗余。主GPT位于磁盘头部,而备份副本(次要GPT)位于磁盘尾部。GPT使用校验和来检测GPT 头和分表中的错误与损坏。
    综上,GPT分区方案正在逐步取代MBR分区方案。

使用Parted管理分区

parted 命令将整个磁盘的设备名称作为第一个参数,并且还有一个或多个子命令。如果不提供子命令,parted 就会打开用于发出命令的交互式会话

  • print子命令显示磁盘上的分区表
parted /dev/vda print  #显示/dev/vda磁盘上的分区表
  • 向新磁盘写入分区表

(1)首先必须为其写入磁盘标签。磁盘标签指示了所用的分区方案。使用mklabel子命令

parted /dev/vdb mklabel msdos  #将MBR磁盘标签写入磁盘,指示该磁盘用MBR分区方案
parted /dev/vdb mklabel gpt  #将GPT磁盘标签写入磁盘,指示该磁盘用GPT分区方案

(2)创建分区。创建MBR分区和创建GPT分区大体步骤是一样的。
创建MBR分区的步骤:
指定要在其上创建分区的磁盘设备 --> 使用 mkpart 子命令创建新的主分区或扩展分区 --> 指示要在分区上创建的文件系统类型,如xfs 或ext(注意这并不会在分区上创建文件系统;它仅仅指示分区类型) --> 指定磁盘上新分区开始的扇区 --> 指定应结束新分区的磁盘扇区 --> 退出parted --> 运行udevadm settle 命令。可以使用交互模式,也可以直接用一句命令代替。比如:

parted /dev/vdb mkpart primary xfs 2048s 1000MB  #在/dev/vdb设备上创建主分区,指示分区上创建xfs文件系统,新分区从2048s扇区开始,到1000MB扇区结束

创建GPT分区的步骤:
只有第二步和创建MBR分区不一样。这里在使用 mkpart 子命令创建新分区的时候需要指定新分区的名称。比如:

parted /dev/vdb mkpart userdata xfs 2048s 1000MB  #在/dev/vdb设备上创建名为userdata的新分区,指示分区上创建xfs文件系统,新分区从2048s扇区开始,到1000MB扇区结束

(3)删除分区。使用子命令rm,参数为待删除分区的分区编号(使用print子命令查看)

  • 创建文件系统
    使用mkfs.xfs 命令为块设备应用XFS文件系统。对于ext4,使用mkfs.ext4

  • 挂载文件系统
    添加完文件系统后,最后一步是将文件系统挂载到目录结构中的目录上
    (1)手动挂载文件系统 mount /dev/vdb1 /mnt。但是,当服务器重启时,系统不会再次将文件系统自动挂载到目录树上,文件系统上的数据将完好无损,但用户却无法访问
    (2)持久挂载文件系统。系统为了确保系统在启动时自动挂载文件系统,我们在**/etc/fstab** 文件中添加一个条目。此配置文件列出了在系统启动时要挂载的文件系统。
    每个条目有六个字段
    第一个字段指定设备。我们通常使用UUID来指定设备
    第二个字段是目录挂载点
    第三个字段是文件系统类型
    第四个字段是以逗号分隔的、应用于设备的选项列表。defaults 是一组常用选项。
    第五个字段来备份设备
    最后一个字段中的值指示了 fsck 的运行顺序。对于XFS 文件系统,应将该字段设为0,因为XFS并不使用 fsck 来检查自己的文件系统状态。对于ext4 文件系统,如果是根文件系统,应将该字段设为1;如果是其他 ext4文件系统,则将该字段设为 2。
    在这里插入图片描述

注意:在 /etc/fstab文件中添加或删除条目后,记得运行 systemctl daemon-reload命令重新加载systemd守护进程配置。但是新的配置在下次重启系统后才生效!

交换空间

交换空间有什么用

我们知道,所有数据都需要先放进内存中才能被CPU使用,也就是说内存(RAM)用来存储正在使用的程序和数据。但有时候内存可能不够用,特别是当你同时运行许多大型程序或任务时。为了解决这个问题,Linux引入了交换空间。
交换空间是一种备用的内存,它位于硬盘上。当内存用尽时,Linux会把一些不常用的数据暂时放到交换空间,从而释放出内存供活动的程序继续使用。系统RAM与交换空间组合再一起称为虚拟内存
💬 这就像你在电脑内存不够用时,把一些不常用的文件存储到外部硬盘或U盘中,以便腾出更多内存来运行更重要的程序一样
但需要注意的是,由于交换分区位于磁盘上,所以与RAM相比,交换会比较慢。最好还是尽量避免过度依赖交换空间

创建交换空间

  1. 创建文件系统类型为linux-swap的分区
  2. 使用mkswap命令为设备放置交换签名

激活交换空间

  1. 暂时激活交换空间:使用swapon并将设备作为参数,或者使用swapon -a来激活**/etc/fstab**文件中列出的所有交换空间
  2. 持久激活交换空间
    在/etc/fstab文件中放置一个条目(和挂载文件系统一样)。最后记得运行systemctl daemon-reload命令重新加载配置文件,以便下次系统重启后使用更新后的配置文件
    在这里插入图片描述

设置交换空间优先级

默认情况下,系统会按顺序使用交换空间,即内核先使用第一个已激活交换空间,直至其空间已满,然后开始使用第二个交换空间。不过,我们也可以为每个交换空间定义一个优先级,从而强制按该顺序使用交换空间。
要设置优先级,请在**/etc/fstab** 中使用pri选项。内核会首先使用优先级最高的交换空间

实验❗

好啦,接下来我们一起来做个小实验将这些知识综合应用起来

在系统上有新的磁盘可用。在第一个新磁盘上,创建一个名为 backup的2GB GPT分区。由于可能难以设置确切的大小,因此介于1.8GB和2.2GB 之间的大小都是可以接受的。为该分区设置正确的文件系统类型,以托管XFS 文件系统

1.1 创建分区和文件系统需要root 访问权限,因此使用sudo -i命令切换到root用户
在这里插入图片描述

1.2 使用lsblk命令查看系统块设备的信息
在这里插入图片描述 我们可以注意到第一个新磁盘vdb没有任何分区

1.3 确认磁盘没有标签
在这里插入图片描述

1.4 写入磁盘标签,这里我们需要定义GPT分区方案
在这里插入图片描述

1.5 创建2GB分区。将其命名为 backup,将其类型设为xfs。从扇区2048 开始分区
在这里插入图片描述

1.6 确认是否已正确创建新分区
在这里插入图片描述

1.7 运行udevadm settle命令。此命令会等待系统检测新分区并创建/dev/vdb1设备文件。只有在完成上述操作后,它才会返回
在这里插入图片描述

将2GB分区格式化为XFS文件系统并持久挂载于 /backup

2.1 使用 mkfs.xfs 命令格式化 /dev/vdb1分区(我们给/dev/vdb创建的第一个分区默认为/dev/vdb1,第二个是/dev/vdb2。以此类推 )
在这里插入图片描述

2.2 创建/backup挂载点
在这里插入图片描述

2.3 在向 /etc/fstab 中添加新文件系统之前,使用lsblk --fs /dev/vdb1检索其UUID。在向文件中添加新条目时,我们用UUID唯一标识这个文件系统
在这里插入图片描述

2.4 使用vim /etc/fstab打开并编辑 /etc/fstab ,在其中添加新文件系统
在这里插入图片描述

2.5 强制 systemd 重新读取 /etc/fstab 文件
在这里插入图片描述

2.6 手动挂载/backup 以验证工作。确认挂载是否成功。这里需要手动挂载是因为运行 systemctl daemon-reload 命令时,不会影响正在运行的服务状态。它只是重新加载 systemd 的配置,以便新的配置更改在下次系统重启后生效
在这里插入图片描述

在同一新磁盘上创建两个512 MB GPT分区,分别命名为 swap1和swap2。介于460 MB和564 MB之间的大小是可以接受的。为这些分区设置正确的文件系统类型,以托管交换空间

3.1 通过在 /dev/vdb 上显示当前分区表来检索第一个分区的结束位置。在下一步中,将使用该值作为swap1分区的起始位置
在这里插入图片描述

3.2 创建第一个512MB分区并命名为 swap1。将该分区的类型设为linux-swap。使用第一个分区的结束位置作为起始点。结束位置为2000 MB+512MB=2512MB
在这里插入图片描述

3.3 创建第二个512MB分区并命名为 swap2。将该分区的类型设为linux-swap。使用上一个分区的结束位置2512M作为起始点。结束位置为2512MB+512MB=3024MB
在这里插入图片描述

3.4 显示分区表以验证我们创建成功
在这里插入图片描述

3.5 运行udevadm settle 命令。此命令会等待系统注册新分区并创建设备文件。

将两个512MiB 分初始化为交换空间,并将它们配置为在启动时激活。将swap2分区上的交换空间设置为优先于另一个交换空间

4.1 使用 mkswap 命令初始化交换分区。并加下两个交换空间的UUID。当然我们也可以使用lsblk --fs 命令来检索UUID
在这里插入图片描述

4.2 编辑/etc/fstab并定义新的交换空间。要将swap2分区上的交换空间设置为优先于swap1,我们通过pri选项为它赋予一个更高的优先级
在这里插入图片描述

4.3 使用systemctl daemon-reload 强制systemd 重新读取 /etc/fstab 文件

4.4 使用swapon -a命令激活新交换空间。使用swapon --show 命令确认交换空间是否已正确激活
在这里插入图片描述

要验证我们的工作,我们需要重启系统。确认系统是否自动将第一个分区挂载于/backup。同时,确认系统是否激活了这两个交换空间。

5.1重启系统
在这里插入图片描述

5.2 验证系统是否自动将 /dev/vdb1 挂载与 /backup
在这里插入图片描述

5.3 使用swapon --show命令确认系统是否激活了这两个交换空间
在这里插入图片描述

总结💯

好啦,我们现在应该能够:

  • 使用 parted 命令显示和创建分区
  • 在分区上创建新文件系统并进行持久挂载
  • 创建交换空间并在启动时将其激活

感谢💖

好啦,这次的分享就到这里,感谢大家看到这里🤞

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不怕娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值