如果您的Linux安装到加密的LVM,那么在启动Linux时,会加载一个要求输入密码的特殊程序,但是如果该特殊程序被Microsoft Windows病毒感染(可能被修改),将密码发送到某个地方,这可能会成为一个安全问题Windows 分区。但将密码程序安装到 USB 记忆棒上要安全得多,因为它比硬盘驱动器中更加隔离。我想知道如何制作一个可启动的USB来输入我可以登录Linux的密码?
答案1
您所指的特殊程序位于 Linux 内核的 initramfs 内部。 initramfs 包含一个临时 / 文件系统以及挂载真实 / 文件系统所需的额外功能。就您而言,它包含 cryptsetup 工具和一个脚本(特殊程序)来获取您的密码。
因此,要完成您的任务,您基本上需要将 USB 磁盘设置为系统的 /boot 分区。 /boot 包含您的 Linux 内核、initramfs、GRUB2 stage2 等。
需要明确的是,您仍然会从内部磁盘启动,但 GRUB2 将重新安装,以便从 USB 磁盘加载其配置、其他阶段和内核。该过程如下所示,但在开始之前,请确保您有其他方法来访问您的系统,例如通过 LiveCD/USB 驱动器。这个过程将改变 Linux 的加载方式,如果它向南发展,你将毫无后路。
- 使用
fdisk /dev/sdX
(其中 sdX 是 USB 磁盘),在 USB 磁盘上创建一个分区。 - 使用 Linux 文件系统(例如 ext2、3 或 4)格式化上述分区。前任。
mkfs.ext3 /dev/sdX1
- 备份现有的 /boot。这很重要,所以安全总比后悔好。例如,
pushd /boot; tar -cvzf /root/boot-backup.tar.gz .; popd
- 将新文件系统挂载到某处,并将当前 /boot 的内容复制到其中。
- 卸载新的文件系统,并将其重新安装为新的 /boot,同时更新 /etc/fstab。下一步需要安装新的 /boot。
- 使用当前重新安装的任何 MBR 重新安装 GRUB2:
grub-install /dev/sdY
。需要重新安装的原因是您更改了 /boot 所在的位置。此命令还将文件安装到 /boot/grub 中,因此需要安装它(并有备份)。 - 重新生成 GRUB2 的配置文件:
grub-mkconfig -o /boot/grub/grub.cfg
- 查看生成的配置文件/boot/grub/grub.cfg。您应该看到它引用 USB 磁盘(我不记得它是否使用磁盘或文件系统 UID)。
通过插入 USB 驱动器启动来测试设置。然后尝试在不插入 USB 驱动器的情况下启动;这不应该起作用。