是否可以在另一個作業系統正在運行時安裝另一個作業系統?

是否可以在另一個作業系統正在運行時安裝另一個作業系統?

我自己認為這可能非常複雜......但也許有一種可能性:

是否可以在電腦上安裝一個作業系統(例如Windows 7),同時執行另一個作業系統(例如Linux)?就像您啟動虛擬機器管理程式一樣,它可以讓安裝程式存取它需要的所有內容,並讓虛擬運行的作業系統看到它需要的所有硬體(例如主機板,...)

我知道這可能非常複雜,因為您需要以某種方式管理一個作業系統不會為硬體收集鎖,這將鎖定虛擬機管理程式...但是虛擬硬體(如VirtualBox 或VMWare 所做的)也會帶來麻煩因為安裝後你無法啟動Windows...

也許有人早些時候已經考慮過這一點?

答案1

是的,沒有虛擬化;但僅限於第一階段。

用於 x86 的 Windows NT 版本 3 和 4 過去可以透過運行名為winnt.exe. (這在後來的版本中被刪除。MS-DOS 不再兼作“預啟動”恢復/安裝環境。現在使用的是 Windows NT 本身的精簡版本 Windows PE,並且從那時起就一直在使用) Windows NT 5.1。

這是一個普通的 DOS 程序,將開始安裝的第一階段。當然,安裝過程的後續階段需要引導到部分安裝的作業系統,因此不需要全部安裝過程的一部分是在執行另一個作業系統時完成的。

對於任何作業系統來說,理論上都是可能的編寫將在不同(通用)作業系統之上運行的安裝程序,用於至少執行安裝的初始階段(選擇引導磁碟區並在其上種植系統檔案和第二階段安裝程序)。然而,幾乎沒有人為目前作業系統製作類似的安裝程式。大多數安裝程式在目標作業系統本身之上運行,通常是從可移動的 DASD 引導。

答案2

這可以在 Linux 中輕鬆完成:

1 - 為您的分割區建立一個掛載點(在本例中,我將使用 /mnt/fs)。

2 - 掛載您的分割區:mount /dev/[device] /mnt/fs

3 - 將基本目錄結構移到安裝點(這應該包含 binutils 和 shell)。

4 - 如果您的 /var、/boot 或任何其他目錄與 / 分割區分開,請將它們安裝到您的安裝點。例:mount --rbind /var /mnt/fs/var

5 - 掛載/proc/dev檔案系統:mount -t proc none /mnt/fs/procmount --rbind /dev /mnt/fs/dev

6 - chroot 進入 fs 並配置全新安裝:chroot /mnt/fs <here goes your shell, ex: /bin/bash>.

您可以閱讀有關該過程的更多信息Gentoo手冊

編輯:這對於 Windows 或 Mac 安裝可能無法完成。

答案3

您可以使用LiveCD,它會在另一個作業系統內的視窗中為您提供虛擬化作業系統,或者您可以使用VirtualBox 等桌面虛擬機器程式來執行相同的操作,如果第一個作業系統已在硬體上虛擬化,您可以建立另一個虛擬機器並在其上安裝作業系統,因為虛擬化主機管理硬體存取並防止其中一個虛擬機器作業系統鎖定硬體。

但是,您不能運行非虛擬化作業系統,然後使用虛擬化框架允許直接存取相同的硬件,以將另一個作業系統安裝到本質上是雙重開機的配置中。

相關內容