由于根目录移动,无法启动

由于根目录移动,无法启动

我目前正在 VMWare Workstations 15 Player 中运行 ParrotOS。运行uname -r返回5.5.0-1parrot1-amd64

我正在测试一些 py 代码,这些代码管理 ~/Downloads/htb/Challenges/ 下子目录中的文件。当我运行代码时,我无法再在终端中输入基本命令或访问某些程序。当我重新启动系统时,我无法再启动 ParrotOS。相反,它会启动到 initramfs 控制台。

这是一个新帐户,所以我没有发布照片的权限。以下是选择恢复模式的输出:

restoreMode输出截图:

我运行find / -name sbin 2>/dev/null后发现,文件夹已使用我提供的测试数据从根目录移动到~/Downloads/htb/Challenges/。

我尝试将这些目录移回 / 。例如mv routeToSubDir/bin /usr/bin,但是我收到错误消息,mv 无法删除该目录,因为它是只读系统

以下是位于非预期子目录中的文件夹/文件的列表:

SubDir列表截图:

任何关于恢复操作系统的建议都将不胜感激。如果没有,至少能够从虚拟机中提取某些文件(即文档等)会很好,但这不是我的首选。

答案1

重新启动计算机,当 grub 显示系统列表时,选择 parrot,按 e。

从 grub 选项中,找到以“linux16”开头的行并转到其末尾。在此行末尾输入“rd.break”(不带引号),如下所示。

rd.break

按 ctrl+x

类型 :

mount -o remount,rw /sysroot/

确保 remount 和逗号符号之间没有空格。

然后输入:

chrooot /sysroot/

然后将目录移动到先前的位置。

如果你在强制模式下使用 SELinux,你可以使用命令检查

sestatus

然后,您需要在移动文件后重新标记它们。可以这样做:

touch /.autorelabel

确保斜线和点之间没有空格。

答案2

第二种选择是进入救援模式而不是 rd.break。

按“e”,然后转到以单词“linux”开头的行末并附加“systemd.unit=rescue.target”。如果存在单词“$vt_handoff”,则删除它。如果存在 rd.break,则删除它。

安装主驱动器

将 sdb2 更改为驱动器的根分区。

mount /dev/sdb2 /mnt 

安装其他东西

mount -t proc none /mnt/proc 
mount -o bind /dev /mnt/dev 
mount -o bind /sys /mnt/sys 
mount -o bind /run /mnt/run 

如果您愿意,您可以挂载启动分区。如果您的启动分区是其他分区,请更改 sdb1。对于 efi,您可能需要挂载启动分区,然后在 /boot/efi 内挂载 efi 分区。

mount /dev/sdb1 /mnt/boot 

根目录

chroot /mnt 

您现在应该处于 chroot 环境中。要退出 chroot,请按 control+d 或输入 exit。

当然,请记住在退出之前卸载驱动器。

相关内容