Как заменить linux os изнутри

Как заменить linux os изнутри

Я использую сервер Nebula, с которого можно установить только Ubuntu 16.04 с ядром 4.4.0-210-generic.

Я хочу установить на свой экземпляр более новую версию Linux.

Виртуализация

Я попытался создать виртуальную машину из Ubuntu (с помощью libvirt), но получил сообщение:

ERROR Host does not support any virtualization options

Однако при проверке lscpuя получаю:

Virtualisation:        VT-x

Использование grub и другого диска с устанавливаемым ISO

Тогда я подумал, что могу попробовать заменить всю операционную систему вручную, изнутри нее самой.

У меня есть возможность создавать новые диски для экземпляра.

Поэтому я добавил диск на 16 ГБ.

$ 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

Однако у меня нет возможности сменить диск для загрузки.

  • Мой «старый» диск ОС имеет идентификатор 0
  • мой новый диск Ubuntu ISO имеет идентификатор 2

Конфигурация Nebula жестко запрограммирована на загрузку с идентификатора 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, как предлагается в другом ответе, вы можете указать GRUB на свой установочный диск, взяв его идентификатор диска (в форме (hdX, msdosY)или (hdX,gptY)и вручную создав пункт меню в /boot/grub/grub-cfg[1]

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

Связанный контент