我打算用 Arch Linux 替换 NAS 的 Custom Linux(详细信息在底部),当然希望保留所有用户数据,并且(由于仅限 SSH 无头访问)尝试万无一失,因为可能会出现错误固件重新安装(甚至使设备变砖)。因此,不要运行安装(下载适当的Arch Linux ARM 版本并可能使用chroot 到 LiveCD 方法)如果没有适当的准备,我必须记住什么? (请随意回答,不受 Arch Linux 的限制)更准确地说:
具体情况是我想从一个替换定制的LinuxBuffalo LinkStation Pro 双核(armv5tel架构,鼻中枢描述此处更有帮助,还提供了有关如何进行操作的说明获得 SSH root 访问权限) 和Arch Linux ARM。但更笼统的答案可能对其他人也更有帮助。
答案1
有了所需的技能,尤其是有关已安装的 Linux 的知识,就不再值得更换它了。无论你做什么,你可能都不想替换已经安装的内核。然而,你可以让你的 arch linux 相对简单并且万无一失!
概念:将 arch linux 安装到 NAS 上的某个目录中,并man chroot
对其进行 chroot ()。这样你就不需要更换nas linux。您安装并配置您的 arch linux 并逐步将本机 linux 的服务替换为 arch linux 服务。你的 arch linux 安装越完整、越强大,你就可以自动执行 chroot 过程,一一关闭本机 linux 提供的服务,同时自动启动 chrooted arch linux 中的服务。完成后,NAS 的启动过程将如下所示:exec /sbin/init
在 chroot 环境中加载内核并挂载硬盘,chroot 到 arch linux。
你需要自己计算出精确的 doibg,b/ci 既不知道 arch linux,也不知道你的 NAS 及其操作系统。您需要创建要安装 arch linux 的目标目录;它需要位于具有足够可用可写空间的设备上 ( mkdir /suitable/path/archlinux
),然后您需要引导您的 arch linux
cd /suitable/path/archlinux
wget -nd https://raw.githubusercontent.com/tokland/arch-bootstrap/master/arch-bootstrap.sh
bash arch-bootstrap.sh yournassarchitecture
现在你在该路径中已经有了一个基本的 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
那么你应该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
。
这并不像真正的替代品那么完整,但也是万无一失的。正如最初所述,凭借所需的知识和技能,恕我直言(!),完全更换是不必要的,也是值得的。