我使用的 Nebula 伺服器只能安裝核心為 4.4.0-210-generic 的 Ubuntu 16.04。
我希望在我的實例上安裝較新版本的 Linux。
虛擬化
我嘗試在 Ubuntu 中建立虛擬機器(使用 libvirt),但收到訊息:
ERROR Host does not support any virtualization options
但是,當我檢查時lscpu
我得到:
Virtualisation: VT-x
使用 grub 和另一個帶有可安裝 ISO 的磁碟
所以後來我想我可以嘗試從內部手動取代整個作業系統。
我有權為實例建立新磁碟機。
所以我添加了一個16GB的驅動器
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 16G 0 disk
├─sda1 8:1 0 2,9G 0 part
└─sda2 8:2 0 3,9M 0 part
sr0 11:0 1 364K 0 rom
vda 253:0 0 500G 0 disk
└─vda1 253:1 0 500G 0 part /
並將其製作為 Ubuntu 磁碟
dd if=ubuntu20.04.iso of=/dev/sda
但是,我無權更改啟動磁碟機。
- 我的「舊」作業系統磁碟機的 ID 為 0
- 我的新 Ubuntu ISO 驅動器的 ID 為 2
Nebula 配置被硬編碼為從 id 0 啟動,我無法更改它。
我檢查了我的系統目錄/boot
,發現引導系統是GRUB。
所以我檢查了版本
grub-install --version
而且好像是Grub2
grub-install (GRUB) 2.02~beta2-36ubuntu3.32
我想知道是否可以告訴 grub 啟動到我的 ubuntu20.04 磁碟,然後在名為 id0 的磁碟上安裝vda
?
只需更換系統中的檔案即可更換作業系統。
如果無法運行安裝程序,那麼我正在考慮手動替換核心和所有作業系統檔案。但是,我很確定如果我替換當前使用的系統的文件,系統將會崩潰 - 但也許有一種方法可以以正確的順序執行此操作。
答案1
可以透過命令列將 Ubuntu 從某個版本升級到更新版本
主要任務是sudo apt install update-manager-core
安裝更新程式。然後sudo do-release-upgrade
。
看https://www.cyberciti.biz/faq/upgrade-ubuntu-18-04-to-20-04-lts-using-command-line/
答案2
如果您無法按照另一個答案建議的那樣更新您的 Ubuntu 安裝,您可以透過抓取其磁碟識別碼(以(hdX, msdosY)
或的形式)將 GRUB 指向您的安裝磁碟,並在[1](hdX,gptY)
中手動建立選單項/boot/grub/grub-cfg
menuentry "New Ubuntu Install Disk" {
search --set=root --label GRUB --hint hdX,msdosY
linux /path/to/vmlinuz #likely in /boot/
initrd /path/to/initrd #also likely in /boot/
}
另外,也許您對啟動順序的控制比您意識到的更多efibootmgr
:(文件)可用於手動變更啟動設備。
或者,您可以重新啟動並手動輸入 GRUB 命令列(使用c
),然後從那裡啟動到安裝程式(儘管這是一次性的努力)。有關如何執行此操作的說明這裡
[1]https://www.gnu.org/software/grub/manual/grub/grub.html#Multi_002dboot-manual-config