質問があるのですが、私はハードドライブについてあまり詳しくないので、ここでは私と一緒に考えてください。
ハードディスクのデータを失わずにGPTからMBRに変更することはできますか?
なお、この作業を行うノートパソコンにはOSが入っていません。
USBから起動して、変換しようと思っています。
GPTからMBR、MBRからGPTへの変換は、Linuxのgdisk
でデータを失うことなく行えます(私も試しました)。
ご自身の責任でご利用ください。
gdisk /dev/sdx "コマンドを実行してください。
GPT fdisk (gdisk) version 1.0.1
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************
Command (? for help):
GPTパーティションをディスクに書き込む場合は、wと入力します。
y**を押して選択を確定します。
r*を入力して、回復と変換のオプション*に入ります。
GPTをMBRパーティションに変換する場合は、gを入力します。
p**コマンドでテーブルを確認することができます。
警告:ブートローダ(GRUBなど)が使えなくなります。
パーティションがGPTかMBRかは、Partition Table Scan(p)で、HDDのパーティションに応じたsdxでgdisk /dev/sdx`することで確認できます。
Krunalが言ったように、gdiskはgrubをダメにしてしまうので、レスキューモードを避けるためです。
BIOSから起動する場合は、gdiskを書き込んで終了する前に、BIOSブートパーティションを作っておいた方がいいでしょう。(そうでなければ、UEFIから起動する場合はEFIパーティションが必要です)。
そして、grub-install /dev/sda
でブートローダを修正してから、再起動すると良いでしょう。
例えば、私はsda1とsda5の間の2048セクタ、ちょうど1MBをBIOSブートパーティションに使用しました。
Number Start (sector) End (sector) Size Code Name
1 2048 999423 487.0 MiB 8300 Linux filesystem
5 1001472 41940991 19.5 GiB 8E00 Linux LVM
これは Krunal と clarkttfu が提供した情報を強化したもので、BIOS ブートパーティションを作成してそこに grub をインストールする手順の詳細が記載されています。
ブートドライブのパーティションテーブルを変更する場合は、grub がブートローダを格納するための新しい "BIOS boot partition" を作成する必要があります。これらの例では、通常ブートドライブとなる /dev/sda ドライブを使用しています。
まず、現在の最初のパーティションの前に、ブートパーティションをサポートするスペースがあることを確認します。fisk -lは、最初のパーティションがセクタ2048で始まることを示します。
johnf@ubuntu:~$ sudo fdisk -l /dev/sda
[...]
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 499711 497664 243M 83 Linux
/dev/sda2 501758 125829119 125327362 59.8G 5 Extended
/dev/sda5 501760 125829119 125327360 59.8G 8e Linux LVM
fisk -lは、最初のパーティションがセクタ2048から始まっていることを示します。もしそうでなければ、以下の手順を踏んでも起動可能なシステムにはなりません。
sudo gdisk /dev/sd を実行し、n
と入力して新しいパーティションを作成し、提案されたパーティション番号を受け入れてください。
Command (? for help): n
Partition number (2-128, default 2):
First sector (34-4294967262, default = 4294922240) or {+-}size{KMGTP}: 34
Last sector (34-2047, default = 2047) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): ef02
Changed type of partition to 'BIOS boot partition'
これで w
でパーティションテーブルを書けるようになりました。partprobeを再度実行し、grubをインストールしてください。
johnf@ubuntu:~$ sudo partprobe
johnf@ubuntu:~$ sudo grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
これで問題なくマシンの再起動ができるはずです。