#はじめに
HDDのクローンを作成し、古い方のHDDを外付けHDDをとして再利用しようとしたら、GRUBが生きていて困った話
##①概要
HDDからSSDへ換装した際、残ったHDDを外付けHDDとして再利用しようと試みた。
SSDのWin10からexFATでHDDフォーマットしてWin10とubuntuで共有できるようにした。
共有外付けHDDの作成自体は成功したかに見えた。が、外付けを接続したままPCを再起動すると、[Grub Rescue]が起動してOSが起動出来ない。
調べてみると、フォーマットだけではHDDに残っているGRUBが削除されずに残っている。そのためBIOS起動順で優先の高いUSBにから起動に行くが、ブートローダーに記載されている領域にはOSの入ったパーティションが存在しないためこのような事態になる。
そこで、GRUBを削除しようと試みた。
##②手順
結論から言うと、HDDの先頭をゼロ埋めしてMBRを消す。
MBRはHDDの先頭セクタなので、バイトサイズは512 カウントは1 (以下ウィキ参照)
https://ja.wikipedia.org/wiki/マスターブートレコード
消した後に再度Win10でフォーマット。
で、消すコマンドがこれ↓
dd if=/dev/zero of=/dev/● bs=512 count=1
●は消去したいデバイス名
HDDのデバイス名を調べるには、以下のコマンドかUbuntuのユーティリティから[ディスク]を選択。
(ディスクユーティリティから調べたほうが分かりやすかった)
:~$ sudo fdisk -l
ディスク /dev/loop0: 42.8 MiB, 44879872 バイト, 87656 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
〜
〜
ディスク /dev/sda: 894.3 GiB, 960197124096 バイト, 1875385008 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0xed928d4c
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sda1 * 2048 18661374 18659327 8.9G 7 HPFS/NTFS/exFAT
/dev/sda2 18661376 264234943 245573568 117.1G 7 HPFS/NTFS/exFAT
/dev/sda3 264234945 878634943 614399999 293G 7 HPFS/NTFS/exFAT
/dev/sda4 878636993 1113010175 234373183 111.8G f W95 拡張領域 (LBA)
/dev/sda5 878637056 1113010175 234373120 111.8G 83 Linux
〜
〜
ディスク /dev/sdb: 931.5 GiB, 1000204886016 バイト, 1953525168 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x60daf3ec
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sdb1 2048 1953521663 1953519616 931.5G 7 HPFS/NTFS/exFAT
##③おまけ
はじめはHDD全体をゼロ埋めしようかとも思った。(そういった記事が多かったから。)
でも、以下のページではじめのセクタだけゼロ埋めしてブートローダーを無効化していたので試してみたらいけた。
http://t07mk2.blog66.fc2.com/blog-entry-101.html
手順にも書いたがMBRはサイズ512バイトって規定されてるからそこだけゼロ埋めすればいいってこと。