
Ubuntu日本語フォーラム

ログインしていません。
はじめまして。
ubuntuが必要となりインストールしたのですが、
ブートローダ画面でwindowsを選択するとブートロード画面に戻り、起動できません。
ubuntuは正常に起動しております。
ubuntu12.04をインストールしました。
私のPCはwindowsVistaを7にアップグレードしています。
いろいろと検索したのですが、わからないことが多く投稿しました。
どうかよろしくお願いします。
オフライン
1)どのような環境(PCの詳しい情報等)とインストールの方法を提示してください。
2)インストール時に使用した、「LiveCD」又は「LiveUSB」で起動後、「端末」を起動し下記コードを実行した結果をコピー&ペーストし提示してください。
sudo parted -l
オフライン
遅くなりまして申し訳ございません。
1)すみませんが、詳しい情報とはどのような情報でしょうか?
widows7の32bitバージョンを使ってます。
インストールは友人からubuntuの入ったUSBを借りて、インストールしました。
2)以下のような表示が出ました。
モデル: ATA Hitachi HTS54322 (scsi)
ディスク /dev/sda: 250GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 8390MB 8389MB primary ntfs diag
2 8390MB 234GB 225GB primary ntfs boot
3 234GB 250GB 16.4GB extended
5 234GB 247GB 13.3GB logical ext4
6 247GB 250GB 3148MB logical linux-swap(v1)
オフライン
提示された情報では正常にインストールされた状態ではありません。
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 8390MB 8389MB primary ntfs diag
2 8390MB 234GB 225GB primary ntfs boot
3 234GB 250GB 16.4GB extended
5 234GB 247GB 13.3GB logical ext4 bootが欠落しています。原因は不明です。再インストールしてください。
6 247GB 250GB 3148MB logical linux-swap(v1)
オフライン
なるほど...
ありがとうございます。
アンインストールしてから再インストールすればいいですよね?
何か気をつける事はないでしょうか?
ありましたら、アドバイス頂けると嬉しいです。
オフライン
Ubuntuは正常にインストールされていて、
grubのインストール先が/dev/sda2なので、そこにbootフラグが立っていて、
ブートローダ画面(grubのものと推定)がWindowsのインストール先と認識されているものが、/dev/sda2では無い(誤認識されている?)のでWindowsが起動できなくなっているように思えますが如何でしょうか。
Ubuntuを再インストールしても、また誤認識したら同じ状況になるような気がします。
逆にヘタにUbuntuを消去したりすると、grubが起動しなくなる危険もあります。
上記推定が当たっているかはさておき、何かアクションを起こす前に、
/boot/grub/grub.cfg
の内容を確認してみては如何でしょう。
また、ブートローダ画面と呼んでいるものがどういう画面か、もう少し詳しく説明願えますでしょうか。
(grubの画面なのか、Windowsのものなのか)
オフライン
/boot/grub/grub.cfgを確認したのですがよくわかりません。
具体的にどの部分を見たらよろしいでしょうか?
以下に添付します。
ブートロード画面というのは
PCを起動したときに、windowsかubuntuを選択する画面の事を意味しています。
そのためgrubの画面で正しいのでしょうか?
以下grub.cfgの内容です。
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 06e25669-7b6a-4051-9056-48c6a6db6700
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 06e25669-7b6a-4051-9056-48c6a6db6700
set locale_dir=($root)/boot/grub/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=10
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30; then
clear
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.2.0-31-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 06e25669-7b6a-4051-9056-48c6a6db6700
linux /boot/vmlinuz-3.2.0-31-generic-pae root=UUID=06e25669-7b6a-4051-9056-48c6a6db6700 ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.2.0-31-generic-pae
}
menuentry 'Ubuntu, with Linux 3.2.0-31-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 06e25669-7b6a-4051-9056-48c6a6db6700
echo 'Loading Linux 3.2.0-31-generic-pae ...'
linux /boot/vmlinuz-3.2.0-31-generic-pae root=UUID=06e25669-7b6a-4051-9056-48c6a6db6700 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.2.0-31-generic-pae
}
submenu "Previous Linux versions" {
menuentry 'Ubuntu, with Linux 3.2.0-23-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 06e25669-7b6a-4051-9056-48c6a6db6700
linux /boot/vmlinuz-3.2.0-23-generic-pae root=UUID=06e25669-7b6a-4051-9056-48c6a6db6700 ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.2.0-23-generic-pae
}
menuentry 'Ubuntu, with Linux 3.2.0-23-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 06e25669-7b6a-4051-9056-48c6a6db6700
echo 'Loading Linux 3.2.0-23-generic-pae ...'
linux /boot/vmlinuz-3.2.0-23-generic-pae root=UUID=06e25669-7b6a-4051-9056-48c6a6db6700 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.2.0-23-generic-pae
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 06e25669-7b6a-4051-9056-48c6a6db6700
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 06e25669-7b6a-4051-9056-48c6a6db6700
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Recovery Environment (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 16ACCDB3ACCD8DA5
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Windows 7 (loader) (on /dev/sda2)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root C01C7EC51C7EB64E
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
オフライン
すみません。#6では支離滅裂なことを書いてしまっています。
改めて現時点での推定を後述します。
まずは、katsu6さんの投稿内容について返信致します。
katsu6 による投稿:
/boot/grub/grub.cfgを確認したのですがよくわかりません。
具体的にどの部分を見たらよろしいでしょうか?
以下に添付します。
内容の部分に私の理解を記します。
katsu6 による投稿:
ブートロード画面というのは
PCを起動したときに、windowsかubuntuを選択する画面の事を意味しています。
そのためgrubの画面で正しいのでしょうか?
Windows標準のブートローダ(ブートマネージャ)でも、WinodwsとUbuntuの選択を表示させることができます。
なので、どちらかを選択できる画面といった表現では、Windowsのブートローダなのか、grubなのか判別が付きません。
grubなら画面の上の方にgrubのバージョンが表示されているかと思います。
これはWubiの説明文書ですが、この中にWindowsブートマネージャのスクリーンショットがあります。
Windows7だと少し様子が異なるかも知れませんが、概ね似たような外観かも知れません。
grubかWindowsブートマネージャか判別付きますでしょうか。
katsu6 による投稿:
コード:
### BEGIN /etc/grub.d/30_os-prober ### menuentry "Windows Recovery Environment (loader) (on /dev/sda1)" --class windows --class os { insmod part_msdos insmod ntfs set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set=root 16ACCDB3ACCD8DA5 drivemap -s (hd0) ${root} chainloader +1 } menuentry "Windows 7 (loader) (on /dev/sda2)" --class windows --class os { insmod part_msdos insmod ntfs set root='(hd0,msdos2)' search --no-floppy --fs-uuid --set=root C01C7EC51C7EB64E chainloader +1 } ### END /etc/grub.d/30_os-prober ###
ここを見ると、Windows Recovery Environmentと、Windows 7が認識、登録されているようです。
最初に起動する「ブートローダ」がgrubであれば、Windows 7を選択すると、Windowsブートマネージャに処理が移りそうなものですが、元の画面に戻るということで、少しおかしな状況になっています。
さて、現時点での私の推定ですが、
Ubuntuのインストール時に、grubを/dev/sda2にインストールしてしまったということは無いでしょうか。
1. MBRには、bootフラグが立っているパーティションの先頭に処理を移すコード(標準的な状態ではこうなっています)が入っていて、
2. /dev/sda2にbootフラグが立っていて(これは確認済み)、
3. /dev/sda2の先頭にgrubがインストールされている、
状態だと、Ubuntuは正常に起動できて、Windows 7を選択すると、またgrubのOS選択画面が表示される、
ということになるかと思います。
Ubuntuを起動して端末を立ち上げ、debconf-show grub-pcを実行してみて下さい。
私の環境での実行例を示します。
$ debconf-show grub-pc debconf: DbDriver "passwords" warning: could not open /var/cache/debconf/passwords.dat: 許可がありません grub2/kfreebsd_cmdline: grub2/device_map_regenerated: grub2/linux_cmdline: grub-pc/install_devices_empty: false grub-pc/install_devices_failed: false grub-pc/chainload_from_menu.lst: true grub-pc/hidden_timeout: false grub-pc/timeout: 5 grub-pc/kopt_extracted: false * grub-pc/install_devices: /dev/disk/by-id/ata-WDC_WD15EARX-00PASB0_WD-WMAZA5812566-part1 grub-pc/postrm_purge_boot_grub: false grub-pc/install_devices_failed_upgrade: true grub-pc/disk_description: grub2/kfreebsd_cmdline_default: quiet grub-pc/partition_description: grub-pc/install_devices_disks_changed: grub2/linux_cmdline_default: nosplash grub-pc/mixed_legacy_and_grub2: true
この場合、grubが、
/dev/disk/by-id/ata-WDC_WD15EARX-00PASB0_WD-WMAZA5812566-part1
にインストールされていることがわかります。
続いて、ls -l /dev/disk/by-id/を実行してみて下さい。
同様に例を示します。長いので関係無い部分は省略します。
$ ls -l /dev/disk/by-id/ 合計 0 lrwxrwxrwx 1 root root 9 10月 14 12:25 ata-WDC_WD15EARX-00PASB0_WD-WMAZA5812566 -> ../../sda lrwxrwxrwx 1 root root 10 10月 14 12:25 ata-WDC_WD15EARX-00PASB0_WD-WMAZA5812566-part1 -> ../../sda1
これを見ると、
/dev/disk/by-id/ata-WDC_WD15EARX-00PASB0_WD-WMAZA5812566-part1が、/dev/sda1であることが分かります。
以上の手順については、
https://forums.ubuntulinux.jp/viewtopic.php?id=9593
も参照下さい。
ここまで確認して、私の推定が外れているとなれば、上記の確認結果から再度、現在の状態を推定しなおす必要があります。
もし、推定通りであれば、ざっくりと以下の手順で修正が必要になります。
1. grubを正しい場所にインストールし直す。MBRか、/dev/sda5あたりが妥当かと思います。
2. Windowsのブートマネージャを復旧させる。
3. 1とも関連しますが、Windowsブートマネージャからgrubを起動できるように設定するか、grubからWindowsブートマネージャを起動できるようにする。後者の場合は特に何もしなくても良いかも知れません。あるとするとbootフラグをどこに立てるか、ぐらいでしょうか。
Windowsのインストールディスクなどは手元にありますでしょうか。
オフライン
Windowsのシステム修復に関連する情報をいくつかご紹介しておきます。
http://windows.microsoft.com/ja-JP/windows7/What-are-the-system-recovery-options-in-Windows-7
http://windows.microsoft.com/ja-JP/windows7/Create-a-system-repair-disc
http://www.atmarkit.co.jp/fwin2k/win2ktips/1412sysrepdisk/sysrepdisk.html
オフライン
ブートローだはgrubの画面だと思われます。
hmatsueさん推定はあたっていると思います。
まずdebconf-show grub-pcを実行しますと、以下のように出力されます。
debconf: DbDriver "passwords" warning: could not open /var/cache/debconf/passwords.dat: 許可がありません
grub-pc/kopt_extracted: false
grub2/kfreebsd_cmdline:
grub2/device_map_regenerated:
* grub-pc/install_devices: /dev/disk/by-id/ata-Hitachi_HTS543225L9SA00_090121FB2E01LKKZ1WUA-part2
grub-pc/postrm_purge_boot_grub: false
grub-pc/install_devices_failed_upgrade: true
grub-pc/disk_description:
* grub2/linux_cmdline:
grub-pc/install_devices_empty: false
grub2/kfreebsd_cmdline_default: quiet
grub-pc/partition_description:
grub-pc/install_devices_failed: false
grub-pc/install_devices_disks_changed:
* grub2/linux_cmdline_default: quiet splash
grub-pc/chainload_from_menu.lst: true
grub-pc/hidden_timeout: false
grub-pc/mixed_legacy_and_grub2: true
grub-pc/timeout: 10
つまりgrubがgrub-pc/install_devices: /dev/disk/by-id/ata-Hitachi_HTS543225L9SA00_090121FB2E01LKKZ1WUA-part2
にインストールされているという事ですね。
次にls -l /dev/disk/by-id/を実行しますと、
合計 0
lrwxrwxrwx 1 root root 9 10月 13 21:40 ata-Hitachi_HTS543225L9SA00_090121FB2E01LKKZ1WUA -> ../../sda
lrwxrwxrwx 1 root root 10 10月 13 21:40 ata-Hitachi_HTS543225L9SA00_090121FB2E01LKKZ1WUA-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 10月 13 21:40 ata-Hitachi_HTS543225L9SA00_090121FB2E01LKKZ1WUA-part2 -> ../../sda2
となりますので ../../sda2にインストールされているということですので、
推定はあたっていると思います。
現在インストールディスクを持ち合わせていなく、しばらくは入手困難な状況にいます(可能性はかなり低いです)。
インストールディスクがないとできないでしょうか?
オフライン
私自身は、Windowsのトラブルシューティングは基本的に人任せなので、正直なところはっきりとしたことは分かりません。
インストールディスクが無くても、他のPCでシステム修復ディスクを作成すれば、それで修復できるはずですが、
システム修復ディスクの作成に必要なデータがインストールされていなければ、作成時にインストールディスクが要求されるようです。
(ライセンス等で上記の対処に問題がないかは未確認)
http://technet.microsoft.com/ja-jp/evalcenter/cc442495.aspx
あたりで代替できるという話もあるようですが、実際に試したことはないので保証はできません。
オフライン
hmatsueさんありがとうございます。
できれば、インストールディスクがある場合の修復方法を
詳しく教えて頂きたいです。今でなくても、しっかり直したいと思ってますので。
オフライン
修復の手順は、以下のようになります。
0. バックアップ
まずは不測の事態に備えてUbuntu/Windows共にデータのバックアップを取っておいて下さい。
1. grubのインストール先の変更
先にご紹介した、
https://forums.ubuntulinux.jp/viewtopic.php?id=9593
の手順に沿って、grubのインストール先を変更します。どのような形式のデュアルブートにするかにも依りますが、私なら/dev/sda5にgrubをインストールします。
MBRから/dev/sda2のWindowsブートマネージャに処理を移して、そこからgrubを起動するパターンです。
2. Windowsのスタートアップ修復
ここはよく分かりません。ただ、参考になりそうな情報としては、
http://ftlabo.sakura.ne.jp/win/w7-system-repair/w7-system-repair.shtml
が見付かりました。
3. Windowsブートマネージャの設定変更
Windowsブートマネージャからgrubを起動できるように設定変更します。
http://www.atmarkit.co.jp/fwin2k/win2ktips/1110bcdedit/bcdedit.html
http://www.atmarkit.co.jp/fwin2k/win2ktips/1160bcdedit3/bcdedit3.html
などが参考情報ですが、設定に失敗するとまたWindowsが起動しなくなってしまうので、分かりやすいツールを使用した方が安全かと思います。
EasyBCDが有名(というか他には知らない)かと思います。
参考情報で、
http://www.forest.impress.co.jp/docs/news/20120305_516609.html
http://mikasaphp.net/easy_bcd.html
などもどうぞ。
grubをMBRにインストールするパターンも考えられますが、Windowsの復旧時に上書きされてしまうので、このパターンを選択する場合は、SuperGrub2Diskなどを用意して、Ubuntuを起動する手段を確保しておく必要があります。
また、別の方法としては、grubは/dev/sda5にインストールしておき、Windowsの復旧後にUbuntuのLiveCDなどを使用して、bootフラグを/dev/sda5に立てるという方法でも対処できるかと思います。
オフライン
詳しい情報ありがとうございました。
だいぶ先になると思いますが、トライしてみます。
hmatsueさんありがとうございます。
オフライン