![时移和 btrfs。恢复无法挂载/home](https://linux22.com/image/208287/%E6%97%B6%E7%A7%BB%E5%92%8C%20btrfs%E3%80%82%E6%81%A2%E5%A4%8D%E6%97%A0%E6%B3%95%E6%8C%82%E8%BD%BD%2Fhome.png)
我正在使用 btrfs (这似乎是这个问题不可或缺的一部分)。
通过时移恢复并重新启动后,我遇到以下错误
[Failed] Failed to mount /home.
[Depend] Dependancy failed for Local File Systems
You are in emergency mode. After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or "exit" to default mode.
显然,Control-D、重新启动和默认模式等不起作用。我尝试了 timeshift --restore 并收到以下错误。
它显示“在路径 /run/timeshfit/837/backup 处发现设备 /dev/nvme0n1p2 的陈旧安装。\n 已成功卸载。\n E: 无法删除目录。\n Ret=256”。
我认为问题是,它无法将 /dev/nvme0n1p2 挂载到 /home。但我不知道如何解决它。
非常感谢一些悲伤的帮助
干杯。
PS 这是我的 /etc/fstab 输出,当我以 root 身份登录时(紧急启动后)
我有一种感觉,打字
mount /dev/nvme0n1p2 /home
可能会修复它,但我担心它可能只会擦除驱动器或其他东西......
答案1
解决方案:进入 root 后(只需在紧急模式下输入密码)我编辑了/etc/fstab
*在那里我删除了它所说的位subvolid=xxx$
。例如来自
UUID=xxx-yyy-zzz /home btrfs rw,noatime,compress=zstd:3,ssd,space_cache,commit=120,subvolid=257,subvol=/@home 0 0
到
UUID=xxx-yyy-zzz /home btrfs rw,noatime,compress=zstd:3,ssd,space_cache,commit=120,subvol=/@home 0 0
保存并重新启动。
固定的
- 从技术上讲,我先输入了
mount /dev/nvme0n1p2 /home
,然后使用了sudo vim /etc/fsbat
.但应该是相同的结果,除非我犯了严重错误。
使用全部风险由您自己承担:)但这对我有用。
非常感谢 Arch Reddit 子版块上的 @Albator78: https://www.reddit.com/r/archlinux/comments/qhb13t/comment/hieiyyk/?utm_source=reddit&utm_medium=web2x&context=3
答案2
我会告诉你我是如何解决我的问题的。在一个脚本因在多个文件中更改主管理员帐户的用户名而挂起后,我的系统搞乱了。这使我无法满足正确的登录凭据。我“强制移动”了上次更新的所有根文件在问题 EG 之前恢复: mv -f /run/timeshift/backup/timeshift/snapshots/2023-05-13_17-55-48/* /
在此之后,我注销并重新登录。重新启动。启动后重新登录时,一旦发生这种情况。
现在,在执行此操作之前,我一直遇到“无法安装设备”。
但经过这个小动作之后。打开 TimeShift,单击第一个(最早日期)启动来恢复...如果这不起作用,请关闭 TimeShift 并重复下一个。
最终,这些文件将与您已经强制保存到根目录的文件足够匹配,并将支持您进行新的恢复。
这对我来说是一个生死攸关的情况,因为在破坏系统之前我花了 3 个小时来设置我的 Fedora 服务器。幸运的是,在设置服务器之前放置了 TimeShift 备份。 May 失去了 3 个小时的工作,但恢复了 3 个月的时间和文件。