Ubuntu 12.04とWindows 7のデュアルブートシステムがあり、ブートローダーとしてGRUB2(Burgを使用)を使用しています。
何らかの理由で、Windowsインストールがブートメニューに2回表示されます。
Ubuntu GNU/Linux, with Linux 3.2.0-24-generic
Ubuntu GNU/Linux, with Linux 3.2.0-24-generic (recovery mode)
Windows 7 (loader) (on /dev/sda1)
Windows 7 (loader) (on /dev/sda2)
パーティションテーブルを見ると、/dev/sda2
はWindowsインストールのC:\であり、/dev/sda1
は "System Reserved"パーティション(IIRC、Windows独自のブートローダー)です。さらに、gpartedは/dev/sda2
を表示しますが、他のパーティションは表示しません-boot
フラグ付き:
ここで何が起こっていますか?ブートメニューにUbuntuのエントリとone Windowsのエントリのみを表示したいのですが、そのうちの1つを削除するにはどうすればよいですか?
Windows 7はデフォルトで/dev/sda1
に「ブート」パーティションを配置するのは正しいですが、Win 7に「ルート」パーティションにもすべてを配置させることは可能です。事前にフォーマットされたNTFSパーティションにインストールする。
おそらく、過去にWindowsを調整して、ブートローダー/ブート可能フラグが/dev/sda2
になったのでしょうか? both Windowsエントリから正常に起動できますか?その場合、そのうちの1つを削除しても安全です。
危険!
これにより、Windowsが起動できなくなる場合があります。以下の手順を実行するには、必要に応じて
Sudo
を挿入し、事前にNTFSパーティションが読み書き可能にマウントされていることを確認する必要があります。
cd /mnt/where-o-where-my-ntfs-be rm -rf bootmgr Boot BOOTSECT.BAK Recovery cd && umount /mnt/ntfs1 update-grub
それはshouldすべきです-明らかに、デュアルブートシステムで試したことはありません。機能しない場合はお知らせください。より危険な方法を提供するか、grub
ソースを参照して、決定的な答えを得るためにWindowsパーティションを検出する方法を確認します。
私はそれがすでに私のニーズに十分に永続的に解決しました。 /etc/grub.d/30_os-proberスクリプトを少し変更しました:
150行目から開始します(変数と条件を追加して、Windows 7が既に検出されているかどうかを確認します)。
wubi=
for OS in ${OSPROBED} ; do
DEVICE="`echo ${OS} | cut -d ':' -f 1`"
LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
BOOT="`echo ${OS} | cut -d ':' -f 4`"
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
echo "Found ${LONGNAME} on ${DEVICE}" >&2
への変更:
wubi=
windows7_found=
for OS in ${OSPROBED} ; do
DEVICE="`echo ${OS} | cut -d ':' -f 1`"
LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
BOOT="`echo ${OS} | cut -d ':' -f 4`"
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
# Mi-La patch to add Windows 7 only once
if [ "${LONGNAME}" = "Windows 7 (loader)" ]; then
if [ "${windows7_found}" = yes ]; then
echo "Skipping duplicated entry for ${LONGNAME} on ${DEVICE}." >&2
continue
else
windows7_found=yes
fi
fi
echo "Found ${LONGNAME} on ${DEVICE}" >&2
少なくともgrubが更新されなくなるまで動作するはずです。楽しい。
編集:Ubuntu 12.1
30_os-proberは少し変更されましたが、次の行の後に同じifを使用しています。
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
うまくいきます。
ターミナルを介してBurg設定ファイルを編集するだけです。1。)ターミナル2を開きます。
Sudo gedit /boot/burg/burg.cfg
3.)menuentry "Windows ..."を探し、--class os addの直後に:
--group group_secondary
ここで、「group_secondary」は、オペレーティングシステムのグループをグループ化する一意の名前です。このファイルを見ると、Linuxカーネルには次のものがあることがわかります。
--group group_main
これで、WindowsとWindowsの回復は次のようになります。
menuentry "Windows 8 (loader) (on /dev/sdc1)" --class windows --class os --group group_secondary {
insmod ntfs
set root='(hd2,1)'
search --no-floppy --fs-uuid --set b896bf7f96bf3d26
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Windows 8 (loader) (on /dev/sdc2) (recovery mode)" --class windows --class os --group group_secondary {
insmod ntfs
set root='(hd2,2)'
search --no-floppy --fs-uuid --set c46cc0a06cc08f1c
drivemap -s (hd0) ${root}
chainloader +1
}
4.)最も重要な部分!!!セーブ!!!これで、再起動または開始できます:
Sudo burg-emu
5.)選択画面で「F」を押してフォルダーを折りたたみます。
***注意:折りたたみ時には、Burgは折りたたみモードのデフォルトとしてファイルの最初のメニューエントリを使用します。