2

Можно ли выполнить полное восстановление системы на удаленной виртуальной машине с Linux?

Скажем, удаленная система загружалась как Ubuntu 15.04, затем я восстанавливаю на нее полную систему Ubuntu 18.04, пока Ubuntu 15.04 работает, затем при следующей загрузке система становится Ubuntu 18.04. Является ли это возможным?

Поскольку это удаленная виртуальная машина, я не могу загрузить Live-CD или что-то еще, чтобы я смонтировал диск виртуальной машины, верно?

Обновление / Вывод: восстановление в удаленную виртуальную машину Linux невозможно, потому что невозможно смонтировать и отредактировать диск виртуальной машины напрямую, не используя Microsoft Azure, который я использую, по крайней мере. Кроме того, опция загрузки ядра toram предназначена только для живых ISO / USB, но миграция на новый жесткий диск будет работать. Спасибо @ Xen2050.

2 ответа2

2

(Обновление от 2018, 9 декабря: если ваша виртуальная машина имеет режим "восстановления" и доступ к VNC, возможно, существует более простое решение, см. Нижнюю часть сообщения). Оригинальный ответ следует.)

Можно ли выполнить полное восстановление системы на удаленной виртуальной машине с Linux?

Вероятно, да (в большинстве случаев).

Самый простой способ, вероятно, предполагает две перезагрузки, а не одну.

Должно быть возможно сделать это с одной перезагрузкой, но это, вероятно, не стоит дополнительных усилий.

Скажем, удаленная система загружалась как Ubuntu 15.04, затем я восстанавливаю на нее полную систему Ubuntu 18.04, пока Ubuntu 15.04 работает, затем при следующей загрузке система становится Ubuntu 18.04. Является ли это возможным?

Поскольку это удаленная виртуальная машина, я не могу загрузить Live-CD или что-то еще, чтобы я смонтировал диск виртуальной машины, верно?

Если grub2 ваш загрузчик, вы можете сделать следующее:

  1. Скопируйте действующий файл .iso (как файл) в вашу файловую систему.
  2. Отредактируйте grub.cfg для загрузки ядра и инициализации RAM- диска из файла .iso .
  3. Перезагрузитесь в живую ОС из .iso файла
  4. Выполните восстановление из живой среды ОС.
  5. Перезагрузитесь в восстановленную ОС.

(Это также возможно с другими загрузчиками, но я использую grub2.)

Обновление / заключение: восстановление в удаленную виртуальную машину Linux невозможно, потому что невозможно смонтировать и отредактировать диск виртуальной машины напрямую, по крайней мере с Microsoft Azure, который я использую

Если вы перезагрузитесь в живую ISO-среду toram , вы сможете сделать что-нибудь с диском виртуальной машины.

Кроме того, опция загрузки ядра toram предназначена только для живых ISO/USB, но миграция на новый жесткий диск будет работать. Спасибо @ Xen2050.

Я ожидаю, что миграция на новый диск будет намного проще, если ваш провайдер виртуальных машин позволит вам менять диски. (Мой поставщик виртуальных машин со скидкой предоставляет эту функцию.)

Вот фрагмент grub.cfg который я использовал для загрузки в файл ISO. Я добавил этот фрагмент в /etc/grub.d/40_custom , затем запустил update-grub и перезагрузил компьютер.

menuentry "Lubuntu  18.04.1  Live ISO" {
  set isofile="(hd0,gpt4)/path/to/lubuntu-18.04.1-desktop-amd64.iso"
  loopback  loop  $isofile
  linux   (loop)/casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed  boot=casper  iso-scan/filename=/path/to/iso/lubuntu-18.04.1-desktop-amd64.iso  toram
  initrd  (loop)/casper/initrd.lz
}

Как ни странно, после загрузки вышеупомянутой файловая система, которая содержит файл .iso все еще будет подключена. Размонтируйте его следующим образом:

root@lubuntu:~# mount | grep sda
/dev/sda4 on /isodevice type btrfs (rw,relatime,space_cache,subvolid=5,subvol=/)
root@lubuntu:~# umount /isodevice
umount: /isodevice: target is busy.
root@lubuntu:~# losetup -a
/dev/loop1: [0029]:265 (/cdrom/casper/filesystem.squashfs)
/dev/loop0: [0028]:259 (/isodevice/path/to/lubuntu-18.04.1-desktop-amd64.iso)
root@lubuntu:~# losetup -d /dev/loop0
root@lubuntu:~# umount /isodevice
root@lubuntu:~# mount | grep sda

Учитывая, что весь смысл toram состоит в том, чтобы иметь возможность удалить диск, я нахожу странным, что мне приходится вручную отключать //dev/loop0 и unmount /isodevice . Я могу сообщить об этом как об ошибке в Ubuntu.

Вышеупомянутый подход предполагает, что вы можете использовать VNC (или эквивалентный) для доступа к виртуальному экрану, клавиатуре и мыши виртуальной машины. Если у вас нет VNC, вам, вероятно, понадобится создать собственный живой ISO-файл, который установит сетевое соединение, чтобы вы могли войти в него по ssh .

Обновление 9 декабря 2018 года:

Если ваша виртуальная машина имеет режим "восстановления" и доступ к VNC, и если ваша ОС - Ubuntu, то может быть более простой вариант:

  1. Загрузите виртуальную машину в режим восстановления.
  2. Используйте режим восстановления, чтобы записать живой файл Ubuntu .iso непосредственно в начало диска. (Предупреждение: это перезапишет таблицу разделов, поэтому вы потеряете весь доступ ко всем данным, которые ранее были на диске.)
  3. Перезагружать.
  4. Добавление опции toram в строке опций , передаваемых ядру при загрузке. (Ubuntu поддерживает toram . Другие ОС не могут.)
  5. Действующая система ISO полностью загрузится в ram, и вы сможете полностью переформатировать диск. (При желании вы можете использовать живую среду ISO для выполнения стандартной установки.)

Вот пример команды, которая запишет файл .iso на диск:

# wget -O - <url_of_iso> | dd of=/dev/sdX
1
  • Если вы можете использовать опцию ядра / загрузку toram скопировать все системные файлы в оперативной памяти, то вы должны быть в состоянии изменить базовый диск , как вы. Это работает для живого ISO / USB, так что вы можете обновить / перезаписать / удалить устройство, с которого оно было загружено. Я просто не уверен, что обычная установка Ubuntu поддерживает toram (по-видимому, нет) или виртуальная машина будет поддерживать ее (она должна).

  • Даже при обычной загрузке возможно обновить все системные файлы, даже теперь поддерживается обновление ядра без перезагрузки, я не уверен, было ли это поддержано в 15.04. Но проще всего будет установить и отредактировать диск виртуальной машины напрямую.

  • Другая идея состоит в том, чтобы загрузить старую систему 15.04 и создать новый диск (используя новый виртуальный жесткий диск для виртуальной машины), отформатировать, смонтировать и скопировать файлы 18.04 на новый диск, а затем загрузить с нового диска с 18.04 в следующий раз , Как переход на новый жесткий диск.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .