web-dev-qa-db-ja.com

Windows 7でワイプした後、LiveCDを使用してソフトウェアRAID 0でGRUB2を復元する

システムにUbuntu 10.10をインストールしました。ただし、Windows 7を再度インストールする必要があり、GRUBが変更されると予想されます。

現在、私のSoftware RAID 0のパーティションは次のようになっています。

alt text

nvidia_acajefec1はUbuntu 10.10で、nvidia_acajefec3はWindows 7です。

私はいくつかのガイドに従っていますが、通常のRAIDコンテンツを検出できないGRUBに常に固執しています。

実行してみました:

Sudo grub

> root (hd0,0)

GRUBは、ハードディスクが見つからないことを訴えます。だから私は試しました:

find (hd0,0)

そして、それは何も見つけられないと文句を言います。

だから私は試しました:

find /boot/grub/stage1

「ファイルが見つかりません」と言いました。

コンソールからのテキストは次のとおりです。

ubuntu@ubuntu:~$ grub
Probing devices to guess BIOS drives. This may take a long time.

       [ Minimal BASH-like line editing is supported.   For
         the   first   Word,  TAB  lists  possible  command
         completions.  Anywhere else TAB lists the possible
         completions of a device/filename. ]
grub> root (hd0,0)
root (hd0,0)

Error 21: Selected disk does not exist
grub> find /boot/grub/stage1
find /boot/grub/stage1

Error 15: File not found

**幸いなことに、私がやろうとしていることはGRUB2ではなくGRUB Legacyであると示唆する人がいました。だから私は提案されたウェブサイトに行きました( http://grub.enbug.org/Grub2LiveCdInstallGuide )見て回ってみて、試してみてください:

ubuntu@ubuntu:~$ Sudo fdisk -l

Unable to seek on /dev/sda

これは http://grub.enbug.org/Grub2LiveCdInstallGuide の指示のステップ2に過ぎず、/ dev/sdaをシークできないため続行できません。

しかしながら、

ubuntu@ubuntu:~$ Sudo dmraid -r
/dev/sdb: nvidia, "nvidia_acajefec", stripe, ok, 488397166 sectors, data@ 0
/dev/sda: nvidia, "nvidia_acajefec", stripe, ok, 488397166 sectors, data@ 0

ならどうしよう?ライブCD(Ubuntu 10.10)でfdiskにRAIDアレイを表示させる方法についてのアイデアはありますか?正直なところ、私はこのソフトウェアRAID 0システムでGRUB2を今すぐ復元しようとして非常に迷っています。

4
Karl

リカバリCDで起動する場合、ルートデバイスは/ではなく、RAMのISO表現です。この場合、最初にrealルートパーティションをマウントする必要があります。

ソフトウェアRAIDがアクティブかどうかを確認します。

$ cat/proc/partitions

パーティションテーブルエントリを表すsdasdbdm-0に続いてdm-1dm-2などが必要です。

dm-*エントリが表示されない場合は、ソフトウェアRAIDを手動でアクティブ化する必要があります。

$ sudo dmraid-activate

/proc/partitionsをもう一度確認し、grubが認識していることを確認します。

$ Sudo grub-mkdevicemap -m-

出力は異なる場合がありますが、次のようになります(* ata-WDC_WD5001AALS-00L3B2_WD-WCASY5902194 *はハードウェア構成によって異なります)。

(hd0)/ dev/disk/by-id/ata-WDC_WD5001AALS-00L3B2_WD-WCASY5902194
(hd1)/ dev/disk/by-id/ata-WDC_WD5001AALS-00L3B2_WD-WCASY5867648
(hd2)/ dev/mapper/nvidia_acajefec

realルートパーティションは、今すぐ/dev/mapper/nvidia_acajefec1になっているはずです。将来のテストのためにこのパーティションをマウントします:

$ Sudoマウント/ dev/mapper/nvidia_acajefec1/mnt
$ sudo mount --bind/dev/mnt/dev
$ Sudoマウント--bind/proc/mnt/proc
$ Sudoマウント--bind/sys/mnt/sys

grubがデバイスをパーティションにマップできるかどうかを確認します。

$ Sudo grub-mkdevicemap -msudo grub-probe --device-map =/proc/self/fd/0 --target = device/mnt

/dev/mapper/nvidia_acajefec1のようなものが表示されるはずです。

パーティションの名前をGRUBデバイスとして識別します。

$ Sudo grub-mkdevicemap -m-| sudo grub-probe --device-map =/proc/self/fd/0 --target = drive/mnt

出力は(hd2,msdos1)のようなものでなければなりません。

ここまでは順調ですね。 GRUBをインストール/更新するために、---(realルートパーティションに切り替えてブートブロックを更新する準備ができています。

$ Sudo chroot/mnt/bin/bash
$ Sudo update-grub
grub.cfgを生成しています...
背景画像が見つかりました:/usr/share/images/desktop-base/desktop-grub.png
Linuxイメージが見つかりました:/boot/vmlinuz-2.6.32-5-686-bigmem
initrdイメージが見つかりました:/boot/initrd.img-2.6.32-5-686-bigmem
/dev/mapper/nvidia_acajefec1にLinuxが見つかりました
/dev/mapper/nvidia_acajefec3にWindowsが見つかりました
完了
$ Sudo grub-install/dev/mapper/nvidia_acajefec
インストールが完了しました。エラーは報告されていません。
$ exit

システムを再起動する準備が整いました。

2
Raphael Bossek

マウントする必要があるデバイスは/dev/nvidia_acajefec1であり、インストールする必要があるデバイスは/dev/nvidia_acajefecです。 http://grub.enbug.org/Grub2LiveCdInstallGuide の指示に従っておおよそ実行します。

Sudo mount /dev/nvidia_acajefec1 /mnt
Sudo mount --bind /dev /mnt/dev
Sudo mount --bind /proc /mnt/proc
Sudo mount --bind /sys /mnt/sys
Sudo chroot /mnt
grub-mkconfig -o /boot/grub/grub.cfg
grub-install /dev/nvidia_acajefec # Note that there is *not* a '1' at the end
0
Jordan Uggla