2017年5月16日火曜日

Windowsに困らされる


例えば、
WindowsXPとWindows10をデュアルブートしていてWindows10のバックアップでWindowsdXPまで一緒になっちゃう
とか、
Linux入れた後にWindows10を入れたらLinuxが起動できない
など。

そのような症状で困っている人のためになるかもしれない対処法です。

ぶっちゃけ、どちらもブートに関する問題なのです。

先に上げた症状の対応策を検索すると
諦めろ、OSをインストールしなおせ
とか、
OSのインストールには順番があるんや
などの情報が多かったのです。

しかし、しつこく検索した結果、どちらもOSの再インストールなしで問題を解決できるのです。

ただし!!

それなりに苦労しますし、失敗すれば全データ消えるので、やるかどうかは、自己責任でお願いしますね。

ざっとやることを先に書きますと。
1.PBRにする。
2.MBMにする。
3.MBR用の領域を確保する。
4.PBRにする。
以上です。

全ての人に?
なお、この対策は全ての環境で対応できるわけではありません。
試してないですしね。
なので私の環境を説明します。
似た環境や症状なら対応可能かも知れませんので判断してください。

まず、私のHDDですが、最初にWindowsXPを入れていました。

【                        WindowsXP                      】

そして次にLinux Mint 18を追加しました。

【     WindowsXP   】【   Linux Mint     】

ここまでは問題ありません。
LinuxのインストーラーがMBRを作成してくれるのでデュアルブートになっていました。

次にWindows7をインストールしたのですが、ここでLinuxが起動できなくなります

【WindowsXP】【Windows7】【×Linux Mint】

Windows7/8/10は無条件でMBRを上書きしてLinuxを無視してくれちゃいます!

なので対策としてHDDの先頭にMBMの領域を確保し個々のOSをPBMに変更しました。

MBM】【WindowsXP】【Windows7】【Linux Mint】

対策
もし実施するなら最後まで読んでからにしてくださいね。
必要な物、先に準備したほうが良い物などありますから。

1.まずはLinuxを救いだそう

Linux Mint 18をインストールしたDVDを使います。
Linuxが起動したらコンソールを立ち上げ以下の手続きを実行します。

mint@mint ~ $ sudo su
mint mint # mount /dev/sda5 /mnt
mint mint # mount --bind /dev /mnt/dev
mint mint # mount --bind /sys /mnt/sys
mint mint # mount -t proc none /mnt/proc
mint mint # chroot /mnt /bin/bash
mint / # grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-53-generic
Found initrd image: /boot/initrd.img-4.4.0-53-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
Found Windows 10 (loader) on /dev/sda1
done
mint / # grub-install --force /dev/sda5
Installing for i386-pc platform.
grub-install.real: warning: File system `ext2' doesn't support embedding.
grub-install.real: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.
mint / # exit
exit
mint mint # umount /mnt/sys
mint mint # umount /mnt/proc
mint mint # umount /mnt/dev
mint mint # umount /mnt
mint mint # exit
exit

※入力箇所を青字、環境によって変更する箇所を赤字にしています。
※赤字はLinux Mintの入っているパーティションを指定してください。

2.MBMを書き込もう

コチラのサイトに詳しく説明されています。
http://wikiwiki.jp/disklessfun/?multipleboot#yae00b32

http://wikiwiki.jp/disklessfun/?mbm
コチラから「mbm-0.390-for-Linux-install-pack.tar.gz」をダウンロードします。

「1.」の手順の後ならLinuxが立ち上がっているので解凍します。

mint mint # ./install.sh
mint mint # install-mbm /dev/sda

指定するのはドライブ名です。
「1.」のようにパーティションを指定しないでください。

これでLinuxが起動できるようになります。

3.領域の確保

これまでの手順でも3つのOSを起動できますがWindowsXPのパーティションを初期化するとWindows7が起動できませんし、Windows7単体のバックアップができないので対策します。

パーティション編集ツールを起動させます。

「2.」に続けて(Linuxを再起動でもいい)なら、GPartedを起動させます。(もしくはお手持ちのパーティション編集ツールを使います)

HDDの先頭に500MBの空き領域を確保します。
(私の環境ではXPを後ろに下げるイメージですね)

空き領域をNTFSでフォーマットします。
これでWindowsXPとWindows7は起動できなくなります!

4.WindowsXPのPBRを再構築

WindowsXPのインストールDVDで起動します。
※このとき、MBMのメニュでWindows7のパーティションを選択し「m」を押してマスクしておくと、インストールDVDがそのパーティションを見れなくなるので楽です。

OSのセットアップが起動すると
「インストール済みの Windows XP を回復コンソールを使って修復するには、R キーを押して下さい。」
と出るので「R」を押します。

「どの Windows インストールにログオンしますか?」
と聞いてくるので(私の環境なら)1、Enterです。

「Administrator のパスワードを入力してください:」
と聞いてくるので何も入れずEnter。
(設定している人は入力してください)

「C:\WINDOWS>」と出るので。

「C:\WINDOWS>fixboot」と入力し、問い合わせにyを答えます。

問題なければ
「新しいブートセクタは正しく書き込まれました。」
と出ます。

5.Windows7のPBRを再構築

Windows7のインストールDVDで起動します。

「言語」や「キーボード」の問い合わせ画面が出るので「次へ」をクリックします。

「コンピュータを修復する」をクリックします。

自動で破損箇所をチェックし修復してくれます。

DVDを入れたまま再起動をします。そして異常がなくなるまで「コンピュータを修復する」を繰り返します。
※私は2回再起動しました。

エラーの自動修復が済むと新たにメニューが表示されるので
「スタートアップ修復」をクリックします。

自動修復が済むと「再起動」を要求してくるので再起動します。

これでWindows7も起動できるようになります。

6.MBMの設定

先にも書きましたがマスクすると余分なパーティションをOSに見せなくできます。
HDDの先頭に作成した「MBM]パーティションと起動するOS以外のパーティションに「m」マークを付けておけばミスで他のOSを壊す確率が減るのでオススメです。

まとめ
Linuxがなくても、パーティション編集ツールとMBMさえあればWindowsのブートを独立させることができ、個別バックアップの環境を作ることが可能です。

挑戦はあくまで自己責任ですよ?

0 件のコメント:

コメントを投稿