これは、私がUbuntuコミュニティに聞いた最初の質問です。
私はUbuntuにはかなり慣れていませんが、基本を理解し、ターミナルの操作方法を知っています。また、助けを求める前に既存のソリューションを検索する方法も知っています。私はインターネットの高低を精査し、Grub2がどのように機能するかについて多くを学びました。しかし、私の問題を解決する助けにはなりませんでした。
私の問題はこれです。3台のハードドライブを搭載したコンピューターがあります。以前はWindows XPでしたが、Windows 7にアップグレードしました。Ubuntu12.04 LTS(Precise Pangolin)もインストールしました。
Windows 7のインストール中にエラーが発生したため、インストールを再開する必要がありました。その後、Ubuntuをインストールしました。 XP OS(Ubuntuは自動検出しましたが、Windows 7ではありません)のすべてのトレースを削除するのに苦労した後、2つのOSが問題なく動作するようになりました。または、ほとんど。
起動時に、Grub2はUbuntu、Ubuntu Recovery Mode、Linuxのその他のバージョン、memtestを表示し、その後にWindows 7 (loader) on /dev/sda1
およびWindows 7 (loader) on /dev/sdb1
が表示されていました。
最終的に、リカバリモード、その他のバージョン、Memtestを削除しました。今、私が実行すると:
Sudo update-grub
私はこの印刷物を得ます:
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-26-generic
Found initrd image: /boot/initrd.img-3.2.0-26-generic
Found Windows 7 (loader) on /dev/sda1
Found Windows 7 (loader) on /dev/sdb1
「/ dev/sda1上のWindows 7(ローダー)」は削除する必要があります。これは存在しないはずの壊れたエントリであり、最初のWindows 7の試行中にインストールされている必要があります。
/etc/grub.d
フォルダにWindows 7エントリが見つかりません。また、どこを探すべきかわかりません。
ハードドライブのレイアウトは次のとおりです。
/dev/sda1/ (1.82 TiB), NTFS ("Media")
/dev/sdb1/ (100 Mib), NTFS ("System Reserved")
/dev/sdb2/ (149 GiB), NTFS ("Windows 7")
/dev/sdb3/ (149 GiB), Extended (" ")
/dev/sdb4/ (145 GiB), ext4 (" ")
/dev/sdb5/ (4 GiB), linux-swap (" ")
/dev/sdc1/ (488.28 GiB), NTFS ("Downloads")
/dev/sdc2/ (488.28 GiB), NTFS ("AltMedia")
/dev/sdc3/ (886.45 GiB), NTFS ("Personal")
unallocated (2.09 MiB), unallocated
何が起こったと思いますか:Windows 7が最初にインストールされ、ひどくインストールされました。再度インストールしました。最初に、ブートローダーの行き先をガイドするWindows XPがあり、/dev/sdb1/
に置かれました。しかし、2回目はそのようなガイドが存在しなかったため、マシンは/dev/sda1/
に別のブートローダーを配置しました。ちなみに、sda1は2TBドライブ上の唯一のパーティションです。 gedit
によると、ブートレコードパーティションは存在しないようです。 Grub2がこの情報をどこから取得しているかはわかりません。しかし、そこにあります。
誰かが私を助けるためにできることはありますか?または、追加する必要のある情報はありますか?
/dev/sda
ハードドライブが内部ドライブであるか外部ドライブであるかはわかりません。外部ドライブの場合は、update-grub2
コマンドを実行する前に外部ドライブを取り外してください。これはすぐに役立つはずです。
/dev/sda1
ドライブをマウントします。 (これは非常に簡単にできると思います)。次に、そのドライブでBoot
という名前のフォルダーとbootmgr
という名前のファイルを探します。フォルダーとファイルの両方を削除します。次に、update-grub2
コマンドを再度実行します。
Grub2を再度インストールすることもできます。 Ubuntuのインストールが/dev/sdb
にあるのを見ると、コマンドは
Sudo grub-install /dev/sdb
Sudo update-grub
Grub2は、Windowsエントリを検出するためにWindowsブートファイルを探します。 Windows 7を削除しても、Windows 7のブートファイルは削除されません( "Boot"フォルダーと "bootmgr"ファイル)。また、Windows 7のブートファイルがあるため、grub2はWindows 7のインストールもあると単純に想定しています。したがって、デュアルエントリ。
/boot/grub/grub.cfg
内で探しているものを見つける必要があります。このファイルは、update-grub2
によって動的に生成されます。 Ubuntu 32ビットと64ビットをデュアルブートしています。削除したい場合は、このファイルからそのセクションを削除するだけです。これが私のエントリの1つがどのように見えるかです-
menuentry 'Ubuntu, with Linux 3.2.0-23-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root 94916094-afe9-4b74-9413-a3c54b39eb91
linux /boot/vmlinuz-3.2.0-23-generic root=UUID=94916094-afe9-4b74-9413-a3c54b39eb91 ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.2.0-23-generic
}
変更はすぐに有効になるはずなので、バックアップを作成して注意してください。また、update-grub2
を再度実行すると、このファイルで変更した内容は完全に上書きされます。