我有一个可启动 USB(ADATA Superior Series S102 Pro 16GB USB 3.0 闪存驱动器 (AS102P-16G-RGY)),带有 MultiBootUSB (multibootusb.org),带有非持久性 Ubuntu、KALI Linux、ParrotSec OS、Arch Linux 和 Trinity Rescue Kit 。但是,如果我启动这些操作系统中的任何一个,然后移除 USB 驱动器,到目前为止我尚未运行的任何程序都将无法运行,显示屏将开始闪烁,并且会崩溃并显示大量命令行输出,例如:
[ 10.737654] cannot access <whatever>
有没有办法加载整个操作系统(以及所有程序、文件等)从 USB 到 RAM以便在操作系统启动后可以将其拔出,而不丢失操作系统功能?我已经尝试过toram
“RAM 模式”选项和“将系统加载到 RAM”选项。
我更喜欢适用于所有上述操作系统的解决方案。
答案1
我找到了一个解决方案(可能不适用于所有发行版):如果显示“安装前尝试 Ubuntu”或“从这张 Live CD 尝试”,只需按“E”即可编辑内核参数。然后,应该有一行像这样结束:安静的飞溅 --- 或者可能安静的飞溅主机名 = ubuntu --- 添加toram
(或者toram=yes
如果这不起作用)到该行,在破折号之前,所以它是:安静Splash toram ---(带或不带主机名)按F10或Ctrl+X启动。
如果它有效,那么桌面或文件管理器应该将 USB 安装为驱动器。右键单击并单击“弹出”,然后删除驱动器。
2023 年更新:这仍然有效。我还能够在 Windows 中打开 FAT32 驱动器并编辑文件/boot/grub/grub.cfg
以添加一个新的菜单条目(遵循其他条目的格式)用于toram
启动(下面的第二个menuentry
是自定义添加):
menuentry "Try or Install Ubuntu" {
set gfxpayload=keep
linux /casper/vmlinuz layerfs-path=minimal.standard.live.squashfs --- quiet splash
initrd /casper/initrd
}
menuentry "Ubuntu Live To RAM" {
set gfxpayload=keep
linux /casper/vmlinuz layerfs-path=minimal.standard.live.squashfs --- toram noprompt
initrd /casper/initrd
}
menuentry "Ubuntu (safe graphics)" {
set gfxpayload=keep
linux /casper/vmlinuz nomodeset layerfs-path=minimal.standard.live.squashfs --- quiet splash
initrd /casper/initrd
}
该noprompt
参数阻止它在关闭时询问“删除实时媒体并按 Enter”。您也可以sudo touch /run/casper-no-prompt
在系统启动时运行(我不确定两者是否有必要,但我都这样做以防万一)。
该toram
选项仅适用于 Ubuntu 和其他一些操作系统。
答案2
这篇文章可能与您的问题有关。如果您想创建将启动加载到 RAM 的自定义 Linux 实例这篇文章似乎是一个好的开始。您可能还想参考这个帖子以及有关该主题的其他信息。
为了回答你的问题,是的,可以创建一个可以加载到 RAM 中的 Linux Live Boot。您正在使用的操作系统和设置可以执行此操作。如果您正在寻找有关如何设置自己的实时启动的指南,您可以参考本文开头的链接并进行一些研究,以找出最适合您的用例的方法。
但是,问题的第二部分提到在加载操作系统后删除 USB 驱动器。您可以将操作系统设置为加载到 RAM 中,从而允许移除 USB 设备,但您发现该设备上的任何应用程序都不会加载。这是因为它们尚未加载到 RAM 中,并且启动应用程序所需的文件仍然位于您删除的驱动器上。有一种方法可以做到这一点,但是......
使用 USB 设备时是否有目的将其移除?将所有内容设置为从 RAM 加载和运行是可行的,但如果没有驱动器来写入任何内容的更改都将是持久的。一旦您关闭了使用实时启动的计算机并删除了该设备,那么实时启动操作系统的痕迹就会很少(如果有的话)。据我所知,一旦通电并将操作系统或其他类型的输入加载到 RAM 中,原始实时启动的所有痕迹都会消失。这里不需要重新发明轮子,您的设置可以满足您的要求,而不是在仍在使用时删除驱动器的部分。
答案3
+1让笔记本电脑进入睡眠/休眠状态(我无法评论其他人的评论,所以我用新评论来堵塞)
也许是不好的建议,但对我有用。
我让它进入睡眠状态,移除棒,在另一台机器上dd到iso,然后将棒放回去,现在我可以将iso加载到VM中进行分析,而裸机机似乎没有注意到
Ubuntu 18.04 LTS (18.04.5) 运行内核 5.4.0-77-generic ( uname -r
).. 与 4.xx 的内核表不匹配,但这就是它所拥有的,这让我的生活更多地重现这台机器来编译内核模块难的。如果这有什么区别的话,那就是联想恶意软件机器,是在工厂恶意软件(可能是向量,但后来是全面的后门)出现的消息出现之前购买的。
请注意,这充其量只是临时解决方案;如果您这样做是为了“避免 USB 伸出”,则根据您的电源设置,它可能会在您不希望的情况下采取更改状态的操作。
为维护您的机器的所有权干杯!
答案4
我设法让我的华硕笔记本电脑运行得很好,只要我在它进入睡眠状态甚至休眠模式后取下棒子..即使电池没电了一次..重新充电打开盖子就像什么都没发生一样O_o...完全运气好或者最后的错误。 kali 2.0 sana live persistence 和 luks persistence 华硕型号 s550c 系列 x64。由于电池电量低,只能在笔记本电脑处于完全睡眠和休眠状态时重现结果 5 次。价值观