Ubuntu 配置/etc/fstab参数实现开机自动挂载硬盘

前言

不同于热插拔的设备,对于硬盘可能需要长期挂载在系统下,所以如果每次开机都去手动mount是非常痛苦的,当然Ubuntu系统的GNOME桌面自带的gvfsd也会帮你自动挂载,但是指向的路径却是按照uuid命名的,对于有强迫症的我而言,这是极其痛苦的,所以希望开机就可以自动挂载硬盘到指定路径。只关注具体如何实现可以直接跳过我的这些“废话”,直接移步到实现步骤

fstab

系统开机的时候会读取/etc/fstab这个文件中的内容,根据文件配置情况去挂载磁盘。vi /etc/fstab,打开fstab文件,具体如下图所示;
fstab

参数含义

这里需要配置6个参数,<file system><mount point><type><options><dump><pass>;简单解释一下每个参数的含义,不能只见树木不见森林。

  • file system
    文件系统,参考默认的fstab来看,这里只需要把硬盘的UUID正确配置即可;可以通过指令blkid,查看硬盘的UUID
  • mount point
    挂载路径,最终硬盘会被挂载到配置的这个路径下,但是这个路径必须先存在,提前创建好这个路径即可;
  • type
    硬盘的文件系统类型,相应的有ntfsext4fatvfat等等,这里要根据实际情况设置,同样的也可以通过指令blkid,查看硬盘的TYPE
  • options
optiondescription
defaultsuse default options: rw, suid, dev, exec, auto, nouser, and async.
noautodo not mount when “mount -a” is given (e.g., at boot time)
userallow a user to mount
ownerallow device owner to mount
comment or x-for use by fstab-maintaining programs
nofaildo not report errors for this device if it does not exist.
  • dump
    这个参数用来检查文件系统以多快频率进行备份,系统将认为其值为0,则不需要进行备份;设置成1暂时也没有实践过;
  • pass
    这个参数用来决定在启动时需要被fsck扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他的应该逐渐递增,如果设置为0则表示不扫描。

实现步骤

1 查看硬盘信息,并找到需要进行挂载的硬盘

sudo fdisk -l

这里我需要对/dev/sdc进行挂载;
在这里插入图片描述

2 sudo mkfs.ext4 /dev/sdc

该指令会格式化硬盘,所以请先备份数据,如果硬盘的TYPE就是ext4则无需进行这个步骤的操作

3 sudo mkdir /home/diska

创建硬盘需要挂载的路径,这个路径可以根据自己的需要随意命名;

4 查看UUID

$ blkid /dev/sdc 
$ /dev/sdc: UUID="b72a8f66-73d9-42d0-92cc-ae24bee6a309" TYPE="ext4"

5 配置/etc/fstab

打开/etc/fstab,根据对应的格式如下把UUID(步骤4中获取),挂载路径(步骤4中创建),配置到文件中;

# /home/diska was my persional disk
UUID=b72a8f66-73d9-42d0-92cc-ae24bee6a309 /home/diska   ext4 errors=remount-ro 0       0

配置完之后如下图所,记得保存;
在这里插入图片描述
最后,重启系统,看一下硬盘是不是已经挂载上去了;

$ cat /proc/mounts | grep sdc
$ /dev/sdc /home/diska ext4 rw,relatime,errors=remount-ro,data=ordered 0 

OK,最终sdc成功地挂载到/home/diska路径下了。

<think>好的,我现在需要帮助用户在Ubuntu 22上完成硬盘分区、格式化、挂载自动挂载的操作。用户提到了使用fdisk、mkfs、partprobe、df -h、mkswap、swapon、mount和/etc/fstab这些工具和步骤。我需要一步步理清思路,确保每个步骤正确无误,并且符合用户的需求。 首先,用户想要将硬盘分为5个分区。根据Linux的分区规则,主分区最多只能有4个,所以如果用户需要5个分区,必须使用扩展分区和逻辑分区。例如,前三个分区为主分区,第四个分区为扩展分区,然后在扩展分区内创建两个逻辑分区。这样总共就有5个分区。需要注意的是,在fdisk中创建扩展分区和逻辑分区的步骤可能需要特别说明,避免用户混淆。 接下来是格式化分区。用户需要使用mkfs命令,根据不同的文件系统类型(如ext4、xfs等)进行格式化。这里需要明确每个分区的文件系统类型,例如交换分区需要使用mkswap,而其他分区可能使用ext4。同时,格式化完成后需要使用partprobe命令重新加载分区表,确保系统识别新的分区。 然后是挂载新分区。用户需要创建挂载点目录,比如/mnt/diskc1到/mnt/diskc5,然后使用mount命令将各个分区挂载到对应的目录。挂载完成后,使用df -h查看挂载情况,确认所有分区都已正确挂载。 创建交换分区并激活的步骤需要特别注意。用户需要将其中一个分区格式化为交换分区(使用mkswap),然后使用swapon命令激活它。此外,为了确保系统重启后交换分区仍然有效,可能需要在/etc/fstab中添加相应的条目。 最后,修改/etc/fstab文件以实现自动挂载。需要获取每个分区的UUID或设备路径,并按照正确的格式写入fstab文件中。这一步非常重要,因为错误的配置可能导致系统无法启动,所以需要提醒用户仔细检查UUID和挂载选项。 在思考过程中,还需要参考用户提供的引用内容。例如,引用[1]提到挂载时需要指定文件系统类型,引用[3]涉及创建扩展分区和逻辑分区的步骤,引用[4]关于设置交换分区的方法。这些都需要整合到回答中,确保引用正确且步骤完整。 可能遇到的问题包括:分区数量超过主分区限制、格式化时选错文件系统类型、挂载点目录未创建、fstab配置错误导致启动问题等。因此,在回答中需要加入注意事项,比如备份重要数据、谨慎操作fdisk、验证分区表是否正确加载、检查fstab语法等。 总结步骤大致如下: 1. 使用fdisk创建分区,包含主分区、扩展分区和逻辑分区。 2. 格式化各分区为所需文件系统,包括交换分区。 3. 重新加载分区表。 4. 创建挂载点目录并挂载分区。 5. 创建并激活交换分区。 6. 配置/etc/fstab实现自动挂载。 7. 验证所有步骤是否正确完成。 需要确保每一步的命令正确无误,并给出具体示例,比如具体的mkfs命令、挂载命令和fstab条目。同时,提醒用户使用UUID而非设备路径,因为设备路径可能在重启后发生变化,而UUID是唯一的,更可靠。 此外,用户可能对某些命令的具体参数不熟悉,比如fdisk中的n、p、e、l等命令,需要在指导中详细说明。例如,创建主分区时选择p,扩展分区选择e,逻辑分区在扩展分区内创建选择l。这些细节对于初次使用fdisk的用户来说可能容易出错,需要明确说明。 最后,生成的相关问题需要围绕可能扩展的知识点,比如分区类型的选择、文件系统比较、挂载选项的优化、交换分区的大小建议等,帮助用户进一步学习。</think>以下是在Ubuntu 22上完成硬盘分区、格式化、挂载自动挂载的分步指南: --- ### **1. 使用fdisk创建分区** ```bash sudo fdisk /dev/sdX # 替换sdX为目标硬盘(如sdb) ``` - 输入`n`创建新分区,按提示选择主分区(`p`)或扩展分区(`e`) - **创建5个分区的示例**: 1. 主分区1(`/dev/sdX1`) 2. 主分区2(`/dev/sdX2`) 3. 主分区3(`/dev/sdX3`) 4. 扩展分区(`/dev/sdX4`) 5. 在扩展分区内创建两个逻辑分区(`/dev/sdX5`、`/dev/sdX6`) - 输入`w`保存并退出[^3] --- ### **2. 格式化分区** - **普通分区**(以ext4为例): ```bash sudo mkfs -t ext4 /dev/sdX1 # 格式化sdX1为ext4 sudo mkfs -t ext4 /dev/sdX2 # 重复操作其他分区 ``` - **交换分区**: ```bash sudo mkswap /dev/sdX5 # 假设sdX5作为交换分区 sudo swapon /dev/sdX5 # 激活交换分区[^4] ``` --- ### **3. 重新加载分区表** ```bash sudo partprobe /dev/sdX # 使内核识别新分区 ``` --- ### **4. 创建挂载目录** ```bash sudo mkdir -p /mnt/diskc{1..5} # 创建5个挂载点 ``` --- ### **5. 手动挂载分区** ```bash sudo mount -t ext4 /dev/sdX1 /mnt/diskc1 # 挂载主分区1 sudo mount -t ext4 /dev/sdX2 /mnt/diskc2 # 其他分区同理 ``` --- ### **6. 配置自动挂载** 编辑`/etc/fstab`文件: ```bash sudo nano /etc/fstab ``` 添加以下内容(以UUID为例): ```bash # 获取UUID:lsblk -f 或 blkid UUID=xxxx-xxxx /mnt/diskc1 ext4 defaults 0 2 UUID=yyyy-yyyy /mnt/diskc2 ext4 defaults 0 2 /dev/sdX5 none swap sw 0 0 # 交换分区 ``` **注意**:建议使用UUID而非设备路径(如`/dev/sdX1`),避免硬件顺序变化导致错误[^2] --- ### **7. 验证操作** - 检查挂载状态: ```bash df -hT # 查看文件系统挂载情况 free -h # 验证交换分区是否激活 ``` - 测试自动挂载: ```bash sudo umount /mnt/diskc1 sudo mount -a # 重新挂载所有fstab条目 ``` --- ### **注意事项** 1. 操作前备份重要数据 2. 逻辑分区必须位于扩展分区内 3. 使用`lsblk -f`或`blkid`确认分区UUID[^2] 4. 修改`/etc/fstab`后务必测试语法: ```bash sudo mount -a ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小麦大叔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值