我正在尝试安装 ArchLinux,但是只要我连接了任何可启动媒体(幸运的是主磁盘除外),我的笔记本电脑就会挂起。我告诉你这一点,不是因为我想修理我的笔记本电脑(尽管欢迎任何关于为什么会发生这种情况的评论),而是为了解释为什么我试图做一些看起来相当复杂的事情。
我的笔记本电脑上运行着旧版本的 Ubuntu,而 ArchLinux iso 则位于我可以挂载的磁盘上。我的计划是 chroot 进入 ArchLinux 安装环境,有点与安装过程相反。
然而此时,我的无知开始显露出来。我有 RTM但由于如果我终止现有的安装,则几乎没有第二次尝试的希望,因此我将不胜感激任何需要注意的问题和任何一般建议。
答案1
在我开始 chroot 之前,您是否考虑过规避这个问题?你并非完全没有选择:
从 USB 记忆棒或 USB DVD 启动(除非计算机也挂起)
或者,如果您手头有另一台计算机,
从网络启动(如果您的笔记本电脑能够做到这一点)- 设置 tftp 服务器并不困难。
把硬盘拿出来安装到另一台机器上。
接下来要考虑的是:你真的需要 chrooting 吗?安装程序不能从任何目录运行吗?
现在正在chroot。很大程度上取决于您的磁盘是否已分区。如果不是,我强烈建议采用上述路线之一(如果出现任何问题,这实际上是后备路线)。
假设你有一个分区S安装于/S
您可以在其中放置安装介质内容和分区时间安装为/
在运行系统时,步骤应该大致如下(免责声明:我没测试过!):
在某处环回挂载 iso:
mount -o loop,ro /path/to/iso /some/where
将媒体内容复制到 from media toS:
cp -r /some/where/* /S
进入单用户模式,关闭所有服务,卸载除时间和S
从正在运行的系统绑定挂载重要的伪文件系统:
for fs in /dev /dev/pts /proc /sys; do mount -o bind ${fs} S${fs} done
ivot_root - 交换根目录和正在运行的进程的另一个目录
exec chroot
(需要 exec 才能卸载旧的/
)。cd /S pivot_root . old_root exec chroot . command
卸载旧根:
for fs in /dev /dev/pts /proc /sys; do umount old_root${fs} done umount old_root
您应该将媒体内容安装为/
它们通常所在的最重要的伪文件系统。请注意,如果您想卸载旧的媒体,您实际上不能只是 chroot 到已安装的媒体/
- 已安装的媒体备份文件必须位于旧根目录下安装的文件系统上,并且您必须从根目录下卸载所有内容。而且您确实想要卸载旧根目录,除非您有另一个备用分区要安装 - 因为如果您要安装到时间同时将其安装在其他地方,可能某些程序仍在运行,这只是自找麻烦。尤其是当您决定对其进行格式化时。