Linux

如何通過 SSH 安全地將一個 Linux 發行版替換為另一個發行版?

  • January 8, 2013

我打算用 Arch Linux 替換 NAS 的 Custom Linux(詳情在底部),當然希望保留所有使用者數據並且(由於 SSH-only 無頭訪問)試圖做到萬無一失,因為錯誤可能需要韌體重新安裝(甚至將設備變磚)。因此,在沒有適當準備的情況下執行安裝(下載適當的Arch Linux ARM 版本並可能使用chroot 進入 LiveCD 方法),我必須記住什麼?(請隨意回答,不受 Arch Linux 限制)更準確地說:

  • 我是否必須費心弄清楚特定設備的引導過程是如何工作的(例如,引導載入程序的哪些部分駐留在快閃記憶體上,哪些在硬碟上),還是我可以依靠發行版的安裝程序來正確處理這個問題?
  • 如何確定是否使用了某些(可能是專有的)驅動程序以及如何將它們遷移到新設置中?
  • RAID 配置是否可以防止意外刪除?
  • 有沒有辦法偽造引導過程,這樣我就可以檢查安裝是否正確,而只需重新引導即可訪問原始系統?例如使用chrootkexec不知何故?
  • 我還應該注意什麼?

具體情況是,我想用Arch Linux ARM替換Buffalo LinkStation Pro Duo(armv5tel 架構,nas-central 描述在這裡更有幫助,還提供有關如何獲得 SSH root 訪問權限)的自定義 Linux 。但更一般的答案可能對其他人也更有幫助。

有了所需的技能,尤其是有關已安裝 linux 的知識,不再值得更換它。不管你做什麼,你可能永遠不想替換已經安裝的核心。然而,你可以讓你的 Arch linux 相對簡單和簡單!

概念:您將arch linux安裝到NAS上的某個目錄中,然後將chroot(man chroot)安裝到其中。這樣你就不需要更換 nas linux。你安裝和配置你的arch linux,一步一步用arch linux服務替換原生linux的服務。你的arch linux安裝越完整和強大,你就可以自動完成chrooting過程,一一關閉本地linux提供的服務,同時自動啟動chrooted arch linux中的服務。完成後,NAS 的啟動過程如下所示:載入核心並將硬碟掛載,chroot 到 arch linux 中,exec /sbin/init在你的 chroot 環境中。

您需要自己計算出精確的 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

現在您在該路徑中有一個基本的 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. 現在您的 currnt 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.

這不像真正的替代品那樣完整,但它得到了萬無一失的證明。並且如最初所述,憑藉為此所需的知識和技能,恕我直言(!),完全更換不是必要的,也值得。

引用自:https://unix.stackexchange.com/questions/60575