我在 Dell XPS 13 9310 笔记本电脑上运行 2021 年 3 月版 Arch Linux。我想列出 Arch Linux 内核,但不幸的是我无法启动系统来获取它。Linux 发行版安装在加密的nvme0n1
分区中。nvme0n1p3
昨晚我使用rsync
来自 Arch Linux Wiki 的以下命令备份了我的系统;
rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /run/menu/username/backupname
不幸的是,直到运行命令后我才意识到,我还需要将交换文件包含在命令中--exclude
。看来备份确实发生了;但是,有一些错误。备份完成后,我立即注意到我丢失了 wifi 连接,无法重新建立它。我决定重新启动计算机,希望重新启动可以解决 wifi 问题。但是,当我尝试重新启动时,系统根本无法启动。然后我启动到 BIOS 发现它不再识别任何 EUFI 启动设备。不知何故,虽然我不知道是怎么回事,但命令rsync
删除了我的启动设备。
从那时起,我就从拇指驱动器上的 Arch Linux iso 启动,这样我就可以使用随附的 zsh shell 通过命令查看我安装的设备lsblk
。我创建了两个目录/mnt/system
,mnt/usb
因此我可以nvme0n1p3
在它们上面安装和备份硬盘。看来备份硬盘确实收到了完整备份。我尝试安装分区/dev/nvme0n1p3
以查看其内容并查看是否有任何内容被删除;但是,我收到错误/mnt/system: unknown filesystem type 'cryptoLUKS'
,这表明无法识别加密硬盘,即使我之前使用命令解锁了它crypto setup open --type looks /dev/nvme0n1p3 lvm
。
我想我的问题是 1.) 运行如何会rsync
这样禁用我的计算机?2.) 有没有办法修复它以及如何修复?3.) 或者我需要手动重新安装所有内容?关于问题 2,我想知道我是否可以使用备份来修复此问题,即使它有错误,并且作为新手,rsync
我如何使用它来恢复所有内容?
答案1
使用该命令行,rsync
只会写入/run/menu/username/backupname
,这应该不会引起除“文件系统已满”错误之外的问题,因此一定是发生了其他事情才导致了问题。
(再说一次,通常/run
是tmpfs
- 实际上是 RAM 磁盘。因此,如果/run/menu/username/backupname
它不是备份媒体上单独文件系统的挂载点,那么在最坏的情况下,这可能会导致严重的“内存已满”情况,这可能会导致某些进程被终止。但即使这样也不应该产生重启后仍然存在的任何影响。)
也许某些原因导致了 UEFI NVRAM 启动变量的丢失——怎么efibootmgr -v
说?
/mnt/system: unknown filesystem type 'cryptoLUKS'
这看起来就像您试图直接安装加密驱动器,但这行不通。解锁命令应该创建另一个设备以解密形式访问它,如果您还有 LVM,它们将充当另一个间接层。
crypto setup open --type looks /dev/nvme0n1p3 lvm
这看起来像是被严重自动更正的 版本cryptsetup open --type luks /dev/nvme0n1p3 lvm
。如果您确实这样做了,它应该/dev/mapper/lvm
为您创建一个,以便透明地访问 的加密内容nvme0n1p3
。
然后,如果假设只有一个文件系统,则 mount 命令应该是这样的:
mount /dev/mapper/lvm /mnt/system
但是如果加密分区内有 LVM,那么正如命令参数所cryptsetup
建议的那样,下一步应该是这样的:
vgscan
pvdisplay /dev/mapper/lvm
vgchange -ay
lvs
mount /dev/mapper/<VG name>-<LV name> /mnt/system
如果命令vgscan
、pvdisplay
和vgchange
导致lvs
“找不到命令”错误,请尝试在它们前面加上lvm
,即使用lvm vgscan
而不是简单的vgscan
;在 live-CD 环境中,LVM 工具有时会打包成单个二进制文件以实现紧凑性。
理想情况下,命令成功完成udev
后可能会自动激活 LVM 卷组,因此和步骤将自动为您完成。但这些命令绝不会造成任何损害,如果自动激活出现问题,命令还应生成错误消息,以说明问题所在。和命令仅用于显示信息:第一个命令用于确定 PV 是否被成功检测到,第二个命令用于查看是否有任何 LV 被成功激活并找出它们的 VG 和 LV 名称。cryptsetup
vgscan
vgchange -ay
pvdisplay
lvs