Ubuntu 24.04下主LUKS加密SSD与同密码的LUKS加密HDD实现登录自动挂载的方法(含GUI方案咨询)
嘿,别担心,作为经常处理这类加密存储问题的老玩家,我来给你一步步拆解——既然你的SSD和HDD用的是同一个LUKS密码,确实可以不用折腾密钥文件,通过配置crypttab和fstab(或者用GUI工具)实现登录自动挂载,下面分两种方案给你讲:
一、命令行手动配置方案(最可靠,适合想搞懂底层逻辑的新手)
先提醒一下,操作前最好备份一下/etc/crypttab和/etc/fstab这两个核心配置文件,万一配错了还能轻松恢复:
sudo cp /etc/crypttab /etc/crypttab.bak sudo cp /etc/fstab /etc/fstab.bak
步骤1:找到你的HDD的LUKS设备UUID
首先得精准定位你的加密HDD,打开终端输入:
sudo blkid
在输出里找带TYPE="crypto_LUKS"的行,那就是你的2TB加密HDD分区,记下它的UUID(看起来像1234abcd-1234-1234-1234-1234abcd1234的字符串),我们暂时叫它LUKS_HDD_UUID。
步骤2:配置crypttab实现自动解密
这个文件是系统解密加密设备的核心配置,因为你的HDD和主SSD用同一个密码,系统可以直接复用SSD解密时输入的密码,不用再让你重复输入。
编辑crypttab文件:
sudo nano /etc/crypttab
在文件末尾添加一行(把LUKS_HDD_UUID替换成你刚才记下的真实UUID):
hdd_crypt UUID=LUKS_HDD_UUID none luks,keyscript=/lib/cryptsetup/scripts/passdev
给你拆解一下这行的意思:
hdd_crypt:解密后的映射设备名称,你可以随便取,比如叫storage_crypt也行UUID=LUKS_HDD_UUID:指定要解密的HDD加密分区的唯一标识none:因为我们复用主盘的密码,这里填none,系统会自动调用主盘的解密密码luks,keyscript=/lib/cryptsetup/scripts/passdev:这个参数让系统从主盘的解密会话里获取密码,避免二次输入
保存退出nano:按Ctrl+O,回车确认保存,再按Ctrl+X退出编辑器。
步骤3:创建挂载点
给解密后的HDD在系统里找个固定的“入口”,比如我习惯在/mnt目录下建个专属文件夹:
sudo mkdir /mnt/storage_hdd
你也可以自定义路径,比如/media/你的用户名/存储盘,不过/mnt更适合这种长期固定挂载的存储设备。
步骤4:获取解密后HDD的分区UUID
现在先手动解密HDD,获取它解密后的普通分区UUID:
sudo cryptsetup open /dev/disk/by-uuid/LUKS_HDD_UUID hdd_crypt
然后再次输入blkid,找到/dev/mapper/hdd_crypt对应的UUID(注意这个和之前的LUKS UUID不是同一个),我们叫它DECRYPTED_HDD_UUID。
步骤5:配置fstab实现自动挂载
这个文件用来告诉系统解密后把设备挂载到哪里,编辑fstab:
sudo nano /etc/fstab
在文件末尾添加一行(替换成你的DECRYPTED_HDD_UUID和挂载点路径):
UUID=DECRYPTED_HDD_UUID /mnt/storage_hdd ext4 defaults 0 2
解释一下:
UUID=DECRYPTED_HDD_UUID:解密后HDD分区的唯一标识/mnt/storage_hdd:你刚才创建的挂载点路径ext4:如果你的HDD解密后是其他文件系统(比如btrfs),就改成对应的类型defaults:默认挂载选项,满足日常使用需求0 2:第一个0表示不使用dump工具备份,第二个2表示开机时检查文件系统(主盘用1,其他盘用2即可)
保存退出后,测试一下配置是否正确:
sudo mount -a
如果没有报错,说明配置没问题。现在重启系统,就能看到HDD自动挂载好了。
二、GUI工具方案(更直观,适合不想敲命令的新手)
你在Reddit看到的GUI方案是可行的,Ubuntu 24.04自带的Disks(磁盘)工具就能完成大部分操作,不过得注意关键细节:
步骤1:打开Disks工具
点击左下角的“显示应用程序”,搜索“Disks”(中文叫“磁盘”),打开这个工具。
步骤2:解锁加密HDD
在左侧列表里找到你的2TB HDD,点击它,然后点击右上角的齿轮图标,选择“解锁分区”,输入你的密码(和主盘一样的那个),解锁这个分区。
步骤3:配置自动挂载
解锁后,再次点击齿轮图标,选择“编辑挂载选项”:
- 打开“开机时挂载”(Mount at system startup)的开关
- 关掉“需要用户会话才能挂载”(Require user session to mount)的开关——这一步很重要,否则系统只会在你打开用户会话后才挂载,不是真正的开机自动挂载
- 挂载点(Mount point):可以用默认路径,也可以自定义成你想要的,比如
/mnt/storage_hdd - 标识(Identify as):选择
UUID(推荐,因为设备路径可能变化,但UUID不会) - 挂载选项(Mount options):留空或者填
defaults就行 - 文件系统类型(Filesystem type):选择你HDD解密后的文件系统(比如ext4)
- 点击“确定”,输入管理员密码确认修改。
步骤4:配置自动解密(关键!)
刚才的操作只配置了解密后的自动挂载,但还没让系统自动解密HDD。这时候有两个选择:
- 方案A:手动补全
crypttab配置,就是上面命令行方案里的步骤2,直接添加那行配置就行,这个最可靠 - 方案B:安装专门的GUI加密工具
cryptsetup-gui,输入命令安装:
sudo apt install cryptsetup-gui
打开工具后,找到你的HDD加密分区,点击“设置自动解锁”,选择“使用系统主密码”,保存配置即可。不过这个工具在Ubuntu 24.04可能存在一些小bug,如果不好用,还是推荐用方案A。
关于你在Reddit看到的说法的补充验证
你在Reddit看到的“不用密钥文件,只需配置crypttab和fstab,用GUI就能搞定”是完全正确的,但要注意两个关键点:
- 不是所有GUI工具都能自动处理同密码LUKS设备的自动解密,比如默认的Disks工具只能配置挂载,没法直接搞定自动解密
- 必须确保
crypttab的配置让系统复用主盘的解密密码,否则还是会弹出让你第二次输入密码的窗口 - 所以GUI方案要么用
cryptsetup-gui,要么用Disks配置挂载后手动补crypttab,两种方式都能实现需求。
备注:内容来源于stack exchange,提问作者SpaceX

