it-swarm-ja.com

ライブリモートへの完全なLinuxシステムの復元VM

リモートLinux VMライブにシステム全体を復元することは可能ですか?

リモートシステムがUbuntu15.04として起動したとすると、Ubuntu15.04の実行中にUbuntu18.04の完全なシステムを復元し、次に起動すると、システムはUbuntu18.04になります。出来ますか?

リモートVMであるため、Live-CDなどを起動してVMのディスクをマウントする方法はありません。

更新/結論リモートLinuxに復元VMライブは不可能です、VMディスクを直接マウントして編集することは不可能であり、少なくとも私が使用しているMicrosoft Azureでは不可能です。さらに、カーネルブートオプションtoramは-です。 ライブISO/USBの場合のみ ですが、新しいハードドライブへの移行は機能します。@ Xen2050に感謝します。

2
xpt
  • カーネル/ブートオプションtoramを使用してすべてのシステムファイルをRAMにコピーできる場合は、should基になるディスクを好きなように編集できます。これはライブISO/USBで機能するため、起動元のデバイスを更新/上書き/削除できます。通常のUbuntuインストールがtoramをサポートするかどうか(明らかにサポートしない)、またはVMがサポートするかどうか)はわかりません。

  • 通常の起動を行っても、すべてのシステムファイルを更新できる可能性があります。再起動せずにカーネルを更新することもサポートされていますが、15.04でサポートされているかどうかはわかりません。しかし、最も簡単なのは、VMディスクを直接マウントして編集することです。

  • もう1つのアイデアは、古い15.04システムを起動し、新しいディスクを作成し(VMに新しい仮想ハードディスクを使用)、18.04ファイルを新しいディスクにフォーマット、マウント、コピーしてから、次回は18.04で新しいディスクから起動することです。 。新しいハードドライブに移行するようなものです。

1
Xen2050

2018年12月9日更新:VMに「レスキュー」モードとVNCアクセスがある場合は、より簡単な解決策がある可能性があります。投稿の下部を参照してください。元の回答は次のとおりです。 。)

リモートLinux VMライブにシステム全体を復元することは可能ですか?

おそらくそうです(ほとんどの場合)。

最も簡単な方法は、おそらく1回ではなく2回の再起動です。

1回の再起動でそれを行うことは可能であるはずですが、おそらく余分な努力の価値はありません。

リモートシステムがUbuntu15.04として起動したとすると、Ubuntu15.04の実行中にUbuntu18.04の完全なシステムを復元し、次に起動すると、システムはUbuntu18.04になります。出来ますか?

リモートVMであるため、Live-CDなどを起動して、VMのディスクをマウントする方法はありません。

Grub2がブートローダーの場合、次のことができます。

  1. ライブの.isoファイルを(ファイルとして)ファイルシステムにコピーします。
  2. grub.cfgを編集してカーネルを起動し、.isoファイルからRAMディスクを初期化します。
  3. .isoファイルからライブOSを再起動します
  4. ライブOS環境から復元を実行します。
  5. 復元されたOSを再起動します。

(これは他のブートローダーでも可能かもしれませんが、私はgrub2を使用しています。)

更新/結論:リモートLinuxへの復元VMライブは不可能です。これは、VMディスクを直接マウントおよび編集することができないためです。 、少なくとも私が使用しているMicrosoftAzureではありません。

toramライブISO環境で再起動すると、VMのディスクに対して何でもできるはずです。

さらに、カーネルブートオプショントーラムはライブISO/USB専用ですが、新しいハードドライブへの移行は機能します。 @ Xen2050に感謝します。

VMプロバイダーでドライブの交換が許可されている場合、新しいドライブへの移行ははるかに簡単になると思います。(私の割引VMプロバイダーはその機能を提供します。)

これは、ISOファイルを起動するために使用したgrub.cfgフラグメントです。このフラグメントを/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ファイルを含むファイルシステムはマウントされたままになります。次のようにマウントを解除します。

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

toramの要点がディスクを削除できるようにすることであるとすると、/dev/loop0を手動でデタッチして/isodeviceをアンマウントする必要があるのは奇妙だと思います。私はこれをUbuntuのバグとして報告するかもしれません。

上記のアプローチは、VNC(または同等のもの)を使用してVMの仮想画面、キーボード、およびマウスにアクセスできることを前提としています。 VNCがない場合は、ネットワーク接続を確立するカスタムライブISOファイルを作成して、でsshできるようにする必要があります。

2018年12月9日更新

VMに「レスキュー」モードとVNCアクセスがあり、OSがUbuntuの場合は、より簡単なオプションがあります。

  1. VMをレスキューモードで起動します。
  2. レスキューモードを使用して、ライブのUbuntu .isoファイルをディスクの先頭に直接書き込みます。 (警告:これによりパーティションテーブルが上書きされるため、以前にディスク上にあったすべてのデータへのすべてのアクセスが失われます。)
  3. リブート。
  4. 起動時にカーネルに渡されるオプションの文字列にtoramオプションを追加します。 (Ubuntuはtoramをサポートしています。他のOSはサポートしていない場合があります。)
  5. ライブISOシステムは完全にRAMで起動し、ディスクを完全に再フォーマットできるようになります。 (必要に応じて、ライブISO環境を使用して標準インストールを実行できます。)

.isoファイルをディスクに書き込むコマンドの例を次に示します。

# wget -O - <url_of_iso> | dd of=/dev/sdX
2
mpb