如何通过 SSH 安全地用另一个 Linux 发行版替换一个 Linux 发行版?

Tob*_*ler 6 linux ssh reinstall system-installation

我打算用 Arch Linux 替换 NAS 的自定义 Linux(底部的详细信息),当然希望保留所有用户数据,并且(由于仅 SSH 无头访问)尝试万无一失,因为可能需要固件重新安装(甚至使设备变砖)。因此,与其在没有适当准备的情况下运行安装(下载适当的Arch Linux ARM 版本并可能使用chroot 进入 LiveCD 方法),我必须记住什么?(请随意回答,不限于 Arch Linux)更准确地说:

  • 我是否需要费心弄清楚特定设备的引导过程是如何工作的(例如引导加载程序的哪些部分驻留在闪存上,哪些部分在硬盘上),或者我可以依靠发行版的安装程序来正确处理这个问题吗?
  • 如何确定是否使用了某些(可能是专有的)驱动程序以及如何将它们迁移到新设置中?
  • RAID 配置是否不会被意外删除?
  • 有没有办法伪造启动过程,这样我就可以检查安装是否正确,而只需重新启动即可访问原始系统?例如使用chrootkexec以某种方式?
  • 我还应该注意什么?

具体情况是,我想用Arch Linux ARM替换Buffalo LinkStation Pro Duo(armv5tel 架构,nas-central 描述在这里更有帮助,还提供有关如何获得 SSH 根访问权限的说明)中的自定义Linux。但更一般的答案也可能对其他人更有帮助。

Ban*_*uin 9

凭借所需的技能,尤其是有关已安装 linux 的知识,不再值得更换它。不管你做什么,你可能永远不想替换已经安装的内核。但是,您可以让您的 arch linux 相对简单且万无一失!

概念:将 arch linux 安装到 NAS 上的某个目录中,然后将 chroot ( man chroot) 安装到其中。这样你就不需要更换 nas linux。您安装和配置您的 arch linux 并逐步通过 arch linux 服务替换本机 linux 的服务。您的 arch linux 安装越完整和强大,您就会自动执行 chrooting 程序,一一关闭本地 linux 提供的服务,同时自动启动 chrooted arch linux 内的服务。完成后,NAS 的启动过程如下所示:exec /sbin/init在 chrooted 环境中加载内核并挂载硬盘,将 chroot chroot 到 arch linux中。

您需要自己计算出精确的 doibg,b/ci 既不知道 arch linux,也不知道您的 NAS 及其操作系统。您需要创建要安装arch linux的目标目录;它需要位于具有足够可用可写空间 ( mkdir /suitable/path/archlinux) 的设备上,然后您需要引导您的 arch linux

cd /suitable/path/archlinux
wget http://tokland.googlecode.com/svn/trunk/archlinux/arch-bootstrap.sh
bash arch-bootstrap.sh yournassarchitecture
Run Code Online (Sandbox Code Playgroud)

现在您在该路径中有一个基本的 arch linux。您可以按照以下方式 chroot

cp /etc/resolv.conf etc/resolv.conf
cp -a /lib/modules/$(uname -r) lib/modules
mount -t proc archproc proc
mount -t sysfs archsys sys
mount -o bind /dev dev
mount -t devpts archdevpts dev/pts
chroot . bin/bash
Run Code Online (Sandbox Code Playgroud)

那么你应该source /etc/profile。现在您的当前 shell 在您的 arch linux 中,您可以使用它,就好像您已经替换了您的本机 linux 一样……您在当前进程的范围内拥有它。显然你想安装东西并配置你的arch linux。当您使用当前的 shell 执行时,/etc/init.d/ssh start您实际上是在启动 arch linux 安装的 ssh 守护进程。

当你完成并且你真的想用 arch linux 完全替换你的原生 linux(服务)时,你的 NAS 的原生 linux 不再启动任何服务,而是执行上面的 chroot 过程,区别在于最后一行是exec chroot . sbin/init.

这并不像真正的替代品那样完整,而是尽可能地万无一失。正如最初所述,凭借此所需的知识和技能,恕我直言(!),完全更换是没有必要的,也值得。

  • ps:是的,这确实很像gentoo安装指南。 (3认同)