36159


Ubuntu 16.04 の入っている HDD が起動しなくなりました。  
その原因として、Ubuntu の入っている HDD のパーティションが認識できなくなっていました。

USB メモリから Linux を起動させ `parted -l` を使った際、次のようなエラーが発生しました

[code]

    エラー：無効な引数です： /dev/sda から読み込み中のシークでエラーが発生しました。
    モデル： ATA TOSHIBA DT01ACA3 (scsi)
    ディスク /dev/sda: 3001GB
    セクタサイズ (論理/物理): 512B/4096B
    パーティションテーブル: unknown 
    ディスクデフラグ：
    警告：ドライバは物理ブロックサイズが 2048 バイトであると言っていますが、Linux は 512 バイトだと言っています。
    
[/code]


CC BY-SA 4.0
2017-07-06T13:49:25.523
36156
2020-09-03T14:39:55.410
2020-09-03T14:39:55.410
3060
7978
question
linux ubuntu
パーティションが見つからない


**TestDisk** というパーティション復旧用のユーティリティがあります。  
<http://www.cgsecurity.org/wiki/TestDisk>

確認で使用されたUSB起動のLinuxに含まれている場合もありますし、もし無ければSystemRescueCdなどのLiveCD(USB)がおすすめです。  
<http://www.system-rescue-cd.org/>

コマンドラインから起動するツールですが、基本的には画面の指示に従ってパーティションを検索し、運良く正常なパーティションテーブルが見つかったら実際に書き込む事で復旧の可能性があります。


CC BY-SA 3.0
2017-07-06T15:20:44.207
36159
2017-07-06T15:20:44.207
3060
36156
answer


結論としてはデータを救出したのちにフォーマットし直すことをお勧めします。

> ディスク /dev/sda: 3001GB

従来のPCが採用していたMBR形式のパーティションのセクターサイズは32bit＝4Gセクターが最大値です。１セクターが512バイトの場合、`512B/sector
× 4Gsectors = 2TB`までしか管理することができません。質問のハードディスクは3TBですので

  1. MBR以外の形式（[GPT](https://ja.wikipedia.org/wiki/GUID%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB)）を使用する
  2. １セクターのサイズを512Bより大きくする
  3. 前半2TBまでを使用し、後半1TBを捨てる

の選択肢があります。（今起動しようとしているUbuntu
16.04ではなく）ハードディスクのフォーマットに使用したLinuxにも依りますが、一般的には1.のGPT形式が選択されます。しかし

> ドライバは物理ブロックサイズが 2048 バイトであると言っています

この警告メッセージを見る限り、Linuxを起動しようとしたBIOSファームウェアは2.を選択しているように見受けられます。  
この場合の不幸は、GPT形式では従来MBRと互換のため先頭セクターが使えない点です。セクターサイズが異なっていればどのセクターも位置が異なってしまうためパーティション情報の読み出しは必ず失敗してしまいます。（MBR形式の場合、先頭セクターを使うためセクターサイズに依らず読み出しに成功します。）

以上を踏まえて、フォーマットを行った際にBIOS / 当該Linuxが認識していたセクターサイズがどうなっていたのか（512B or
2048B）、当該Linuxはどのパーティション形式を選択したのか（MBR or
GPT）を確認してください。データが破損しておらずセクターサイズを一致させることができれば、パーティションを認識させることもできるかと思います。

（UEFI対応BIOSならこのようなことにはならないと思うのですが…どこまで話を広げたものか）


CC BY-SA 3.0
2017-07-06T21:14:41.930
36165
2017-07-06T21:14:41.930
4236
36156
answer