|
D大你好,有问题想要请教以下,是关于udm深度隐藏Linux的我现在装的是Ubuntu 19.10,参考工具内提供的 Ubuntu深潜说明 ,目前我已经做好了
- /grldr
- /efi/boot/bootx64.efi
- /efi/boot/bootia32.efi
复制代码 的修改,已经可以在挂载Linux安装分区到分区表的情况下,通过MBR引导进UDm来启动Ubuntu。但是在做深度隐藏的时候出现了问题:
我无法在Ubuntu 19.10下进行说明里后面 修改/boot/initrd.img-xxxx 的步骤,走到 cat ../initrd| gzip -d| cpio -i -d 这一步gzip就会报校验错误无法解压。
所以我采用了另一种方法:利用ubuntu下的工具集initramfs-tools(我发不出文档链接)进行修改。我的步骤如下:
1. 提取工具内提供的 udm.tgz 中的 udm 到 /usr/bin
2. 在/etc/initramfs/hooks 下创建hooks脚本来把udm引入initrd.img的bin中,脚本如下
- #!/bin/sh
- PREREQ=""
- prereqs()
- {
- echo "$PREREQ"
- }
- case $1 in
- # get pre-requisites
- prereqs)
- prereqs
- exit 0
- ;;
- esac
- . /usr/share/initramfs-tools/hook-functions
- copy_exec /usr/bin/udm /bin
复制代码 然后我在/etc/initramfs/scripts/init-top 下创建启动脚本,脚本如下
- #!/bin/sh
- PREREQ=""
- prereqs()
- {
- echo "$PREREQ"
- }
- case $1 in
- prereqs)
- prereqs
- exit 0
- ;;
- esac
- udmboot=`udm 2>/dev/null`; udmdev=`echo $udmboot | cut -d" " -f1`; udmroot=`echo $udmboot | cut -d" " -f2`
- if [ -n "${udmdev}" ]; then ROOT=${udmdev}; umount ${udmdev} 2>/dev/null;fi
复制代码 完成后输入sudo update-initramfs -u 来把改动写入initrd.img-xxxx里
用 lsinitramfs /boot/initrd.img-xxxx 检查 initrd.img-xxxx 的,确认已经写入改动
按理来说上面的操作应该能和原说明中解包修改的方法起到同样的效果
重启到主机系统,打开工具深度卸载掉Linux的分区,重启进行引导
这时UEFI和MBR的UDm启动菜单引导项都能显示出来了
进入UEFI的UDm启动菜单,能成功引导进Ubuntu自己的Grub引导
但在进入系统时会卡在OEM Logo里,然后进入initramfs的shell
在这里参考启动脚本尝试输入 udm 2>/dev/null ,连续输出三行 EXT4-fs(loop20): unrecognized mount option "utf8" or missing value,最后输出一行/dev/udmdev /mnt/udmdev
在MBR引导下也是同样的情况,同时进入initramfs的shell时还会提示ALLERT! UUID xxxxxxxxxx does not exist, drop to shell
目前我能确定保存在/etc/initramfs/scripts/init-top下的启动脚本是能够正常工作的,似乎是保存在/bin里的udm存在问题?
现在我真的没有思路了,还请您帮我看看,谢谢!
|
|