データを失わずにGPTとMBRのハードドライブ間を変換する

質問があるのですが、私はハードドライブについてあまり詳しくないので、ここでは私と一緒に考えてください。

ハードディスクのデータを失わずに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): 

MBRからGPTへ

GPTパーティションをディスクに書き込む場合は、wと入力します。

y**を押して選択を確定します。

GPTからMBRへ

r*を入力して、回復と変換のオプション*に入ります。

GPTをMBRパーティションに変換する場合は、gを入力します。

情報について

p**コマンドでテーブルを確認することができます。

警告:ブートローダ(GRUBなど)が使えなくなります。

パーティションがGPTかMBRかは、Partition Table Scan(p)で、HDDのパーティションに応じたsdxgdisk /dev/sdx`することで確認できます。

解説 (3)

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
解説 (0)

ドライブをブータブルにする

これは 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.

これで問題なくマシンの再起動ができるはずです。

解説 (0)