2016年6月25日

LinuxデュアルブートPCでWindows10無料アップグレードしたらパーティションぶっ壊された話

Windows10にアップグレードすると自動的にパーティションが一つ増えます。変なパーティションの構成にしたままアップグレードしようとすると、これが原因でデュアルブートpcが起動できなくなります。こうなってしまうと、パーティション修復ソフトで元に戻す必要があります。
7
ぷー くま ぷー @pu_kuma_pu

先日、UbuntuとWindows7のデュアルブートpcで、Windows 10にアップグレードしようとしたらエラー起きてヒドイ目にあった。

2016-06-14 13:57:54
ぷー くま ぷー @pu_kuma_pu

Windows10にアップしている最中にエラーコードc1900101-20004を吐いてアップデートが中止された。再起動をかけると grub rescueモードに突入。

2016-06-14 14:00:46
ぷー くま ぷー @pu_kuma_pu

error: no such partition. Entering rescue mode... grub rescue> という表示

2016-06-14 14:01:41
ぷー くま ぷー @pu_kuma_pu

grubのlsコマンドを叩くと4つあったはずのパーティションが3つに減っている。ubuntuのルートディレクトリの入ったパーティションが消された模様。

2016-06-14 14:05:12
ぷー くま ぷー @pu_kuma_pu

調査してみるとWindows10アップグレードでは新しいパーティションが作られるらしく、その作業でおかしくなった可能性が大。askubuntu.com/a/662714

2016-06-14 14:10:51
ぷー くま ぷー @pu_kuma_pu

そこでパーティションを調べるために、壊れたpcにUbuntu16.04のLive USBを挿して立ち上げようと試みるも、Live USBのubuntuが起動中にエラー起こして止まってしまうという謎の現象が起きる。

2016-06-14 14:16:10
ぷー くま ぷー @pu_kuma_pu

さらには、昔作った幾つかのLinux Live CD(古いUbuntu, Puppy Linux etc)の起動にも失敗してしまう。HDDが壊れてしまうと、一時ファイル保管等にHDDを使うLinux Live CDも立ち上がらなくなる模様。

2016-06-14 14:21:00
ぷー くま ぷー @pu_kuma_pu

調査すると、壊れたパーティションの修復には testdisk というソフトウェアを使う必要があるらしい。pctrouble.net/software/testd… を見るとUltimate Boot CDを使うとよいらしいのでこれをまず試してみた。

2016-06-14 14:25:10
ぷー くま ぷー @pu_kuma_pu

でも Ultimate Boot CDからtestdiskを動かすために Parted Magicを起動させようとしたが、こいつもまた動いてくれなくて途方に暮れる。pctrouble.net/software/testd…

2016-06-14 14:27:41
ぷー くま ぷー @pu_kuma_pu

testdiskの公式ページによるとtestdiskが含まれるLive CDは色々選択肢があるらしい。 cgsecurity.org/wiki/TestDisk_…

2016-06-14 14:30:05
ぷー くま ぷー @pu_kuma_pu

その中からSystemRescueCdが実績豊富らしいのでこれを選択した。 system-rescue-cd.org/Main_Page

2016-06-14 14:31:25
ぷー くま ぷー @pu_kuma_pu

SystemRescueCDをUSBにインストするために次を参照。 system-rescue-cd.org/Sysresccd-manu… Aのisohybridコマンドを用いるやり方を選んだ。

2016-06-14 14:34:52
ぷー くま ぷー @pu_kuma_pu

Ubuntu16.04 Live USBを起動させた別のpcから sudo apt install syslinux-utils してisohybridをインストール。次に、ダウンロードした ISOファイルを isohybridで下処理してから、USBにddでコピーした。

2016-06-14 14:37:27
ぷー くま ぷー @pu_kuma_pu

SystemRescueCDは問題なく起動できた。一番上のデフォルトブートオプションを選択し、途中で日本語キーボードを選択して、しばらく待つと root@sysresccd /root % のプロンプトが出てくる。 system-rescue-cd.org/Screenshots

2016-06-14 14:44:18
ぷー くま ぷー @pu_kuma_pu

そうしたら、 testdisk と打ち込めば testdiskが起動してくれる。 あとは pctrouble.net/software/testd… に書いてあるやり方どおりにやったらパーティションを元の構成に回復できた。

2016-06-14 14:50:03
ぷー くま ぷー @pu_kuma_pu

ここでpcを再起動すると再び grub rescue が出てしまう。 grubが壊れているため今度はgrubを再インストする必要がある。このgrub rescueで lsコマンドを叩くと、今度は元通りのパーティションが表示されているので一安心。

2016-06-14 14:52:31
ぷー くま ぷー @pu_kuma_pu

ubuntu Live USBを挿してそこからgrubを再インストしてようやく作業は終了。 help.ubuntu.com/community/Grub…

2016-06-14 14:56:30
ぷー くま ぷー @pu_kuma_pu

pcを起動させると、いつもの紫色したgrubの画面が出る。ubuntuを起動するも特にダメージ無し。grubの画面では Windows7 が項目に上がっていた。Windows 7を起動させると、いきなりWindows 10のアップ中の田んぼのマークが出てきた。

2016-06-14 15:01:37
ぷー くま ぷー @pu_kuma_pu

しばらくすると 「以前のバージョンのWindowsを復元しています...」のメッセージが出た。待っていると見慣れたWindows7のようこそ画面になって、すべて元通りになった。

2016-06-14 15:03:41
ぷー くま ぷー @pu_kuma_pu

Ubuntu側からGpartedを使ってHDDの構成を見ると、先頭のWindows7のパーティションの後ろに、見慣れない「未割り当て」の451MiBの領域が出来ていた。これがWindows10アップグレードの際にできたパーティションの残骸らしい。

2016-06-14 15:12:12
ぷー くま ぷー @pu_kuma_pu

もともと、パーティションは sda1がntfsでwindows7用 sda2がext4でubuntuのルート sda3がlinux-swap領域 sda1〜3はプライメリーパーティション。 sda4が拡張領域でその中にsda5としてubuntuの/homeが入っていた。

2016-06-14 15:16:33
ぷー くま ぷー @pu_kuma_pu

sda4の拡張パーティション内はext4のsda5がすべて占めていた。 この状態で新たにパーティションを作ろうとすると、sda5を縮小して論理パーティションを切り出す必要がある。しかしWindowsからはext4の操作ができないのでアップグレードに失敗したのかもしれない。

2016-06-14 15:19:36
ぷー くま ぷー @pu_kuma_pu

結局、HDDが小さいこともあって、余ってたHDDに一からUbuntuとWindows7を再インストすることにした。Ubuntuのパーティションは全て論理パーティションにするよう注意した。

2016-06-14 15:23:16
ぷー くま ぷー @pu_kuma_pu

今度は sda1が NTFS sda5,6,7 がUbuntu用のパーティションとした。 この状態ならsda1の後ろに新しいプライメリーパーティションを作ることが可能となる。 こうしてから再びWindows10のアップグレードをしたら今度は無事成功して一件落着。

2016-06-14 15:26:59

コメント

うさきち@アニキじゃねーよ! @aliceblue555 2016年6月25日
なるほど今使用しているパソコンがアップグレードに失敗する理由が分かった気がする。ドライブが一個しかなくてしかも容量が分割すると多分微妙なことになると思う。計算上はいけることになってたはずなのにやろうとしたら毎回ダウンロードに以上に時間がかかって何かもうそんなことやってる暇ねーだろ!ってなる…(いや人間の私がですが)。半日待っても駄目なのにそれ以上は無理ですよ。
0