【存】實(shí)現(xiàn)linux系統(tǒng)在VHD、Vdi虛擬磁盤中運(yùn)行在實(shí)體機(jī)里
實(shí)現(xiàn)linux系統(tǒng)在VHD、Vdi虛擬磁盤中運(yùn)行在實(shí)體機(jī)里
之前因?yàn)楣ぷ鞯脑螂x不開windows系統(tǒng)在做了一個(gè)VHD版的win7,確實(shí)在工作中方便不少,現(xiàn)在用linux越來越順手,看到Ventoy的官網(wǎng)有?Linux vDisk 文件啟動(dòng)插件?,?按照Ventoy網(wǎng)上的教程試著做了一個(gè)出來,
新建一個(gè)VHD文件(按照Ventoy網(wǎng)上的教程:1.固定大小,2.必須是VHD文件不能是VHDX文件)我是用winPE的BOOTICE工具制作,

?
將分區(qū)掛載在虛擬機(jī)(以UEFI模式這是重點(diǎn))
我是用的是QEMU-KVM虛擬機(jī)
具體步驟創(chuàng)建虛擬機(jī)選擇需要安裝的系統(tǒng)光盤點(diǎn)前進(jìn),上邊的框里選擇你要安裝的鏡像位置,設(shè)置能存和CPU數(shù),在第四步時(shí)把“為虛擬機(jī)啟用存儲(chǔ)”的勾選掉點(diǎn)前進(jìn)。
?
到第五步時(shí)勾選“在安裝前自定義配置”點(diǎn)完成。
?見到虛擬機(jī)的微調(diào)部分,在概要里調(diào)整Firmware為UEFIX86_64..........
?然后點(diǎn)左下角的“添加硬件”選擇左邊第一個(gè)“存儲(chǔ)”點(diǎn)擊選擇或創(chuàng)建自定義存儲(chǔ),然后點(diǎn)擊“管理”,彈出對(duì)話框,在左下角點(diǎn)擊“+”號(hào)。
?
在彈出的對(duì)話框里點(diǎn)擊“瀏覽”。在彈出的對(duì)話框里選擇你存放VHD文件的文件夾,點(diǎn)擊完成。在“選擇存儲(chǔ)卷”的頁(yè)面右側(cè)點(diǎn)中你創(chuàng)建的VHD文件,點(diǎn)擊“選擇卷”然后啟動(dòng)虛擬機(jī),安裝系統(tǒng)。
?
?
?
注意安裝系統(tǒng)前應(yīng)閱讀Plugin.VtoyBoot . Ventoy
查看支持的Linux發(fā)行版是否是你正在安裝的版本
?
?。?! 注意 ?。。?br>有一些系統(tǒng)安裝完之后還需要再額外安裝一個(gè) grub 的包才可以,否則最終的 vhd/vdi 文件只能在 UEFI 模式下啟動(dòng),無法在 Legacy BIOS 模式下啟動(dòng)。
對(duì)于這種,在前面表格最后的 "備注" 一欄有說明,沒有特殊說明的就不需要。比如,對(duì)于 Deepin 系統(tǒng),需要安裝 grub-pc-bin_xxxx.deb 包。以 deepin-desktop-community-1010-amd64.iso 為例, 需要安裝 grub-pc-bin_2.02.24.3-1+eagle_amd64.deb 這個(gè)包,它位于 ISO文件的 /pool/main/g/grub2/ 目錄下,可以直接使用 dpkg -i 命令來安裝。
另外,如果缺少這個(gè)包,在運(yùn)行下面的 vtoyboot.sh 腳本時(shí)也會(huì)打印一個(gè)提示信息。當(dāng)然,如果你只需要在 UEFI 模式下啟動(dòng)這個(gè) vdisk 文件,不需要在 Legacy BIOS 模式下啟動(dòng),那就不需要管它了。
注意,系統(tǒng)安裝完之后不能對(duì)虛擬機(jī)創(chuàng)建快照,否則會(huì)導(dǎo)致 vdi/vhd 無法識(shí)別。
安裝vtoyboot腳本非常重要?。。。。。?!
安裝完成并啟動(dòng)到 Linux 系統(tǒng)中之后,執(zhí)行 vtoyboot 腳本。這一步是為了在系統(tǒng)中做一些處理,以支持Ventoy啟動(dòng)。
vtoyboot 是配套 Ventoy 開發(fā)的一個(gè)項(xiàng)目,單獨(dú)發(fā)布。從?Releases · ventoy/vtoyboot · GitHub?下載壓縮包拷貝到虛擬機(jī)中安裝即可。
下載到 Linux 系統(tǒng)中,解壓,然后以root權(quán)限執(zhí)行里面的腳本 sudo bash vtoyboot.sh 腳本執(zhí)行完之后,使用 poweroff 命令關(guān)機(jī)。
注意 vtoyboot 會(huì)經(jīng)常更新以支持更多的 Linux 版本以及修復(fù) BUG,所以請(qǐng)使用最新版本。
完成前面2步之后,就可以把 vdi/vhd 文件拷貝到 U盤中,重啟電腦,然后通過Ventoy啟動(dòng)它了。
注意,必須把文件后綴名改為 .vtoy 才可以正常啟動(dòng)。
推薦保留原來的后綴名,同時(shí)增加一個(gè) .vtoy 后綴。比如: CentOS7.vhd.vtoy ubuntu20.04.vdi.vtoy Manjaro.vhd.vtoy
注意vDisk文件在物理機(jī)環(huán)境下啟動(dòng)之后,普通軟件的安裝、升級(jí)可以正常操作,沒有限制。如果是對(duì)內(nèi)核、驅(qū)動(dòng)進(jìn)行了升級(jí)、或者類似于通過 dnf update 命令進(jìn)行了系統(tǒng)的大升級(jí)之后, 建議再重新執(zhí)行一次 vtoyboot 腳本,防止下次重啟之后vDisk文件無法啟動(dòng)。
下邊是:修改/opt 、/usr/local和/home掛載在真實(shí)的磁盤分區(qū)實(shí)現(xiàn)數(shù)據(jù)與系統(tǒng)的分離。
使用虛擬磁盤啟動(dòng)的好處是,如果系統(tǒng)出現(xiàn)問題把備份的VHD拷貝過來就能直接啟動(dòng),但是壞處是,home文件夾里的文件和/opt,/usr/local,安裝的軟件就都一起丟失了,怎么辦呢,把這三個(gè)目錄掛載在真實(shí)的磁盤目錄,那開整!
首先把存放VHD文件的磁盤分出來一個(gè)分區(qū),然后直接用Ventoy引導(dǎo)啟動(dòng),
使用CP命令拷貝/opt 、/usr/local和/home文件到新分的分區(qū)里。
cp -r -p /opt /media/***********************/ (新磁盤是掛載在media下的)
cp -r -p /home /media/***********************/
cp -r -p /usr/local /media/***********************/
然后查看新分的分區(qū)的UUID是多少
?
使用sudo blkid 命令進(jìn)行查看。
修改/etc/fstab文件
使用命令sudo vim /etc/fstab
?
如果在安裝的時(shí)候分別使用獨(dú)立的分區(qū)掛載home ,usr/local和opt的話會(huì)在文件的下方有關(guān)于這三個(gè)分區(qū)的掛載目錄,如果沒有設(shè)置獨(dú)立掛載文件的下方就沒有這三個(gè)目錄的掛載選項(xiàng)。
按照上圖添加掛載信息,在UUID=的后邊改成你查詢到的新分區(qū)的UUID。
然后保存。(按ESC 輸入:wq)
重啟系統(tǒng),測(cè)試掛載。
sudo mount -a
如果不報(bào)錯(cuò)那么掛載成功了,此后每次開機(jī)會(huì)自動(dòng)掛載
這時(shí)候可不是該竊喜的時(shí)候,如果更新完內(nèi)核又忘了運(yùn)行一下Vtoyboot就關(guān)機(jī),等再次啟動(dòng)時(shí),啟動(dòng)不了,在虛擬機(jī)里啟動(dòng)以運(yùn)行Vtoyboot,發(fā)現(xiàn)虛擬機(jī)里也無法運(yùn)行 ubuntu22.04.VHD.vtoy(因?yàn)閔ome ,usr/local和opt都掛載在了VHD外),那怎么辦。。。。。
辦法總會(huì)有的,在在虛擬機(jī)里新建一個(gè)虛擬磁盤 data.img (QEMU-KVM是img后綴,其他虛擬機(jī)是別的后綴),大概10個(gè)G以內(nèi),和liveCD一塊在虛擬機(jī)內(nèi)啟動(dòng),使用磁盤工具,
?格式化創(chuàng)建的虛擬磁盤。
?然后使用sudo blkid 命令進(jìn)行查看磁盤信息。
?
這個(gè)/dev/ada1就是新建的虛擬磁盤 data.img了。
修改磁盤的UUID跟之前掛載在外部的那個(gè)磁盤一樣。
使用uuidgen | xargs tune2fs /dev/sdb -U ************************(之前上文提到的那個(gè)UUID)如果提示沒有該命令可以使用
?
如果提示沒有該命令可以使用
sudo apt-get update
sudo apt-get install uuid-runtime進(jìn)行下載。
然后在用cp命令復(fù)制一份/opt 、/usr/local和/home這三個(gè)目錄。
cp -r -p /opt /media/***********************/ (新磁盤是掛載在media下的)
cp -r -p /home /media/***********************/
cp -r -p /usr/local /media/***********************/
然后使用虛擬機(jī)添加 ubuntu22.04.VHD.vtoy 和新建的虛擬磁盤 data.img 試試,竟然也能啟動(dòng)了。
?
?可以用虛擬機(jī)liveCD掛載 ubuntu22.04.VHD.vtoy 使用rm -rf命令刪除 ubuntu22.04.VHD.vtoy 內(nèi)的/opt 、/usr/local這三個(gè)目錄下的文件。
?
?
?
?
?
?
?
?
?