Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

ubuntuのパーティションテーブルについて

解決したいこと

ubuntuでディスクのパーティションを作成し、マウントして使用したいのですが、疑問点があります。
GPTのパーティションテーブルから作られたパーティションのパーティションテーブルがloopになっています。
これが正常なのか異常なのかをお聞きしたいです。
パーティションテーブルを確認した時の画面はこちら↓
image.png

実行した手順は以下
1.ストレージのパーティションテーブルをGPTに設定、パーティションを作成

sudo parted /dev/sdc mklabel gpt

2.パーティションを作成

sudo parted /dev/sdc mkpart primary ext4 0% 100%

3.パーティションフォーマットをフォーマット

sudo mkfs.ext4 /dev/sdc1

この状態が正しいかどうかを教えていただきたいです。
勉強不足で申し訳ございませんが、お答えいただけると幸いです。

0

3Answer

通常はGPTパーティションになる気がしますが。
あと、パーティションをいじっていると最悪内部のデータに自力でアクセスができなくなるリスクがあります。
バックアップ取っておらず、困ったことになっても責任は負いかねますので、ご慎重に。
0,100の指定なので関係なさそうですが、念のため。

  1. sudo partprobe /dev/sdcでパーティション情報を更新してみてください。(先に対象の物理ディスクのパーティションをすべてアンマウントしてください。できない場合は再起動してみてください)

  2. lsblklosetup -lなどのコマンドで/dev/sdcがループバックデバイスに関連付けられてないか確認してください。sdcがループバックデバイスの場合、通常の結果と思われます。

  3. sudo file -s /dev/sdcでパーティションテーブルが存在するか確認してください。存在しない場合は再作成してください

  4. gdiskコマンドを起動しみてください。gptヘッダが破損していて、警告が出るかもしれません。破損していた場合はmklabelでGPTを再作成してみてください。gdiskで修復する事も可能だと思いますが、gptヘッダの修復に関してはこちらの方が操作が複雑なので、少々リスクが上がるかもです。

あとは仮想環境など環境によってはカーネルなんかが物理デバイスを正しく認識できない場合があるみたいです。正直この場合は、いいアドバイスができるとは思えません。

1Like

Comments

  1. どうやら、私の意見の方が間違ってる感じですかね。実機で確認されたようですし。
    申し訳ない。
    コマンドで明示的にパーティションを作った場合の挙動としては少々不親切な気もしますが。

  2. ありがとうございます!
    実機で行っていますね。
    lsblkコマンド実行結果はこんな感じでした。loopに関連付けられてないっぽい?
    image.png

    sudo file -s /dev/sdc
    の実行結果は以下の通りです。MBR...?
    image.png

    gdiskではGPTが正常に動いていることが確認できました。
    ありがとうございます。
    image.png

    仮想環境でなくてもデバイスを正しく認識できない場合があるのでしょうか...?

  3. 度々すいません。gdiskについては、
    sudo gdisk /dev/sdc
    が実際に実行するコマンドになります。
    オプションなしだと対話形式で実行されます。

    もしくは、sudo gdisk -l /dev/sdcで直接デバイスの情報を表示してみてください。

    sudo file -s /dev/sdc の情報を見る限りだとまだMBRとして認識されてるようにみえますね。
    とりあえず、sudo gdisk -l /dev/sdcでGPTが正しく作成されているか確認するのが良いと思います。可能性の話ですが、MBRセクタだけが消去されなかったり、保護MBRというものを正しく認識できなかったりするらしいです。あとは単純にコマンドが失敗したか。

    gdiskでもパーティションを作ることができるので、GPTパーティションが正常に作られてなかったらgdiskで作ってみるとといいかもです。
    *gdiskはMBRのディスクには新規でパーティションを作れないようです。失礼しました。
    ただしgdiskにはMBRをGPTに変換する機能はあります。
    他の選択肢としてはfdiskコマンドなどがあります。

    デバイスの既存データは必要なさそうなので、最後の手段としてディスク全体をゼロフィルしてから改めてパーティション制作とフォーマットをやるという方法もあります。
    念を押しますが、デバイス内の既存データは消えます。

    仮想環境でなくてもデバイスを正しく認識できない場合があるのかという質問ですが、環境というのはOSをubuntuに限定してもストレージデバイスだけで無数に存在しますので、何とも言えないところです。
    仮想環境云々の話についてコンテキストを補足しておくと、比較的確認される事例が多いという話だと思います。

    あとこれも一応確認しておきますがubuntu自身が存在するデバイスに対してGPTを作ろうとしているわけではありませんよね?この場合、コマンドが失敗するか、何らかの方法で強制的に書きこみを行ったらシステムがクラッシュすると思います。少なくともクラッシュはしていないようですが。

  4. gdiskの使い方について教えていただいてありがとうございます!
    無知でした。すみません...
    コマンドを実行してみたところ、保護MBRとGPTがあってGPTを使っている状態みたいですね。
    image.png

    また、質問に答えていただいてありがとうございます。
    認識できるかどうかなんて何とも言えないですよね...

    加えて、システムファイルのご心配についてもありがとうございます。
    ubuntuは別のデバイスに入っているのでご安心ください。

    色々教えていただき、大変勉強になりました。
    改めまして、質問に答えていただき、ありがとうございます!

Also worth noting (adding "Reason Three" to @user68186's answer) is that parted shows loop as the "partition table" for disks that actually do not have a partition table (whole disk filesystem).

とのことらしいので、通常mountしてファイルシステムとして使うパーティションは(パーティションテーブルを持たないので)、パーティションテーブルは「loop」と表示されると思います。

ちなみに、ちょうどUbuntuServerがあったので試してみましたが、ext4でフォーマットされている /boot のパーティションは同様に「loop」でした。
LVMとして使われている(と思う)パーティションは、「unknown」でした。

1Like

Comments

  1. ご返信いただきありがとうございます!
    だとすると、別に挙動はおかしくないというわけですね。
    勉強になりました。改めて、ありがとうございます!

Your answer might help someone💌