別のマシンから復元した後、GrubのUUIDを修正する方法は?


22

Ubuntu 12.04の完全なtarバックアップを、すべてのカスタマイズ、ドキュメント、インストールされたソフトウェアなどとともに別のマシンに復元したい。

次のコマンドでバックアップを作成しました。

sudo su
cd /
tar cvpzf ububackup.tgz --exclude=/ububackup.tgz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/tmp --exclude=/media /

新しいコンピューターで、Ubuntu 12.04を新規インストールし、バックアップファイルをそのコンピューターに移動して、次のバックアップファイルを使用して復元しました。

tar xvpfz backup.tgz -C /

予想通り(この質問に対するMike Whateverの回答:すべての設定を含むUbuntuディストリビューションを1台のコンピューターから別のコンピューターにコピーするを参照)、これにより問題が解決しました。コンピューターの電源を入れると、エラーが発生します。

error: no such device: ...

press any key to continue ...

Grubが壊れている理由は、探しているUUIDがコンピューターのハードドライブではなく古いハードドライブで一致しているためだと思います。

GRUBを修正して新しいハードドライブを認識するにはどうすればよいですか?「Fix GRUB UUID」というヘルプをオンラインで探しましたが、手順が古いか複雑であるように見えました。上記にリンクしたマイクからの応答は、これを修復するためのかなり簡単な方法があることを願っています。


1
古いコンピューターのスナップショットを作成し、新しいコンピューターに復元するためにclonezilla(clonezilla.org)を使用してみませんか?絶対にすべてをそのままにしておきたいので、本当に簡単だと思います。それ以外の場合、バックアップ(/ home、/ etc、/ usr / local、/ var)を作成し、ソフトウェアを除くデータとカスタマイズを復元するのも簡単です。現在の問題を解決するには、UUIDを変更する必要があります。 (s)/ etc / fstabおよび/boot/grub/menu.lst。UbuntuインストールCDを使用してUUIDを取得し[gpartedまたはコマンドライン]、変更を加えることができます。
ゴルボス

回答:


19

現在の問題を解決するには、「/ etc / fstab」および「/boot/grub/grub.cfg」のUUIDを変更する必要があります(非常に注意が必要です)。

UbuntuインストールCDを使用して、gpartedでUUIDを取得できます(UUIDを取得するパーティションを右クリックし、[情報]をクリックして、UUIDを選択し、CTRL + C)またはコマンドライン(sudo blkid)。

次に、gedit、nanoなどを使用して、適切なボリュームの「/ etc / fstab」を編集する必要があります。

ターミナルで、次を入力します。

gksudo gedit /etc/fstab

古いUUIDを新しいものに置き換えます。

重要:もちろん、ブートCDを使用してこれを行う場合は、「/ etc / fstab」の前に「/ media / xxxxx」を追加する必要があります。「/ media / xxxxx / etc / fstab」。gksudo geditファイルを使用して開いて、自分で編集することもできます。

警告:「/boot/grub/grub.cfg」の変更は非常に注意が必要です。通常、コマンドで生成する必要がありますsudo update-grub

「/boot/grub/grub.cfg」内の古いUUIDを新しいものに置き換えます。ターミナルに次のように入力します。

gksudo gedit /boot/grub/grub.cfg

重要:もちろん、ブートCDを使用してこれを行う場合、「/ boot / grub / grub.cfg」の前に「/ media / xxxxx」を追加する必要があります。「/ media / xxxxx / boot / grub / grub」。 cfg」。gksudo geditファイルを使用して開いて、自分で編集することもできます。

トリッキーなソリューションを使用する場合はsudo update-grub、システムを正常に起動したら起動することをお勧めします。

grubを適切に再構成するよりクリーンでシンプルな方法は、「Boot-Repair-Disk」のようなブート修復ディスクを使用することです:http : //sourceforge.net/p/boot-repair-cd/home/Home/

これが問題の解決に役立つことを願っています。

ただし、コメントに示されているように、Clonezillaを使用して古いコンピューターを新しいコンピューターに複製することを検討してください。


ゴルボス、ありがとう。私はブート修復ディスクを使用するというあなたの提案を使用することになり、それはうまくいきました。
スノーガイ

clonezillaは実際にこれを修正しないかもしれないことに注意してください。(clonezillaを介して)hdd全体をSSDにコピーし、hddとSSDのUUIDをまったく同じにして、ssdで手動でuuidを変更し、sddの上記のファイルでフォールバックhddを保持するようにしました起動可能なOS
Dennis Nolte

3

おそらく、これはgrubが起動し、Ubuntuを起動するオプションを表示することを意味しますが、それを選択すると起動しませんか?

次の2つのオプションがあります。

  1. GRUBラインエディターを使用してLinuxブートオプションを変更し、Linuxを正しくロードします(そして、ルートとしてgrub-installを実行して、正しい構成を永続的に設定します)。
  2. Ubuntu USBスティックから起動し、ubuntuディスクパーティションをマウントし、そこにchrootしてからgrub-installを実行します。

最初のケースは、Ubuntuのみでハードディスクが1つしかない場合に簡単です。その場合、「Ubuntuリカバリ」オプションを選択し、「e」を押して編集します。

エントリは次のようになります。

insmod gzio
insmod part_msdos
insmod ext2
set root=('hd0,msdos0')
search --no-floppy --fs-uuid --set=root XXXXXX
linux /boot/vmlinuz-YYYYY root=UUID=XXXXXX ro recovery nomodeset
initrd /boot/initrd.img-YYYYY

「search」行を削除し、「linux」行の「root = UUID = XXXXX」を「root = / dev / sda1」に置き換えます。これを試して起動してください。しばらくするとUbuntuのリカバリメニューが表示され、grubオプションが表示され、grubが適切に再インストールされます。

そうでない場合、または直接grubをいじりたくない場合(ヘルス警告が表示されるはずです)、https://help.ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2に記載されているCD / USBスティックを使用してください


参考までに、私が始めたとき、grub起動オプションは表示されませんでした(たぶん、Ubuntuが唯一のOSだったのでUbuntuに直接起動するためです)。いずれにしても、私はあなたの助けに感謝します。ブート修復ディスクを作成することになりました。
スノーガイ

どうもありがとう!あなたの答えは、私が愚かにもfstabのUUIDを変更し、Ubuntuが起動できなくなったとき、悪い終わりから私を救った!
reexmonkey

0

私の場合、grubがインストールしたUUID sudo blkidは、Windowsパーティションの現在のUUID()(grub.cfgで確認済み)とは異なります。さまざまな方法を試してみましたが失敗しました。最後に、ファイルマネージャーでWindowsパーティションをマウントし、update-grub再度実行すると、grub.cfgでUUIDが正常に更新されました。


プログラムは呼び出されますがupdate-grub、ではありませんgrub-update。ほとんどのgrubコマンドはで始まるため、これは明らかではありませんgrub-...
Fa11enAngel

0

fstabとgrubを編集する代わりに私がしたこと:

  1. ubuntuの新規インストールでそれらのファイルをバックアップしました(tar -cvf /somedir/boot.tar /etc/fstab /boot/grub/grub.cfg
  2. バックアップから復元しました(tar -xvpf /mnt/remotebk/full.tar
  3. 復元されたfstabファイルをコピー(cp /etc/fstab /somedir/fstab.restored
  4. 新しいインストールブートファイルを復元する(tar -xvpf /somedir/boot.tar -C /
  5. 再起動し、動作しました。

私はvmware仮想マシンを使用しています。このプロセスは、あるLinuxサーバーをあるホストから別のホストに移動するために行いました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.