web-dev-qa-db-ja.com

スーパーブロックを復元する方法は?

user@localhost:$ LC_ALL=C Sudo fdisk -l

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! 
The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xe4948bbb

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1953525167   976762583+  ee  GPT
Partition 1 does not start on physical sector boundary.

dumpe2fs my/dev/sda1をしようとしています:

Sudo dumpe2fs /dev/sda1 | grep -i superblock

dumpe2fs: Ongeldig magisch getal in superblok tijdens openen van /dev/sda1

[ dumpe2fs: magic number not valid during opening /dev/sda1 ]

スーパーブロックを修復するにはどうすればよいですか?

1
Mokum

バックアップスーパーブロックのリスト:

Sudo dumpe2fs /dev/sda1 | grep -i backup

次に、バックアップスーパーブロックを使用します。32768はほんの一例で、いくつか試してください

Sudo fsck -b 32768 /dev/sda1

1人のユーザーはパーティションをアンマウントできませんでしたが(スワップオフが必要な場合があります)、別のライブディストリビューションを使用しました

16.04の新しいfdiskのみがgptパーティションを正しく表示します。 partedまたはgdiskを使用します。

Sudo parted /dev/sda unit s print

Sudo gdisk -l /dev/sda
3
oldfred

Ubuntuシステムが(マルチブートシナリオで)起動せず、別のLinuxシステムからマウントできなかったという、似たような問題がありました。ライブセッションで、gpartedは不良スーパーブロックを報告しました。

私はこの解決策に従いました here ですが、最初のステップで十分でした。

ライブ環境(または別のLinuxシステム)で、次のようなことをしました。

Sudo fsck.ext4 -v /dev/sda6

これはこれを与えました:

e2fsck 1.43.7 (16-Oct-2017)
ext2fs_open2: Superblock checksum does not match superblock
fsck.ext4: Superblock invalid, trying backup blocks...
/dev/sda6 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences:  -3014664 -(3014811--3014813) -(3014840--3014850) -(3014950--3014960) -(3014962--3014965) -3014970 -3014972 -(3014974--3014976) -(3014979--3014980) -(3014983--3014987) -3015043 -(3015053--3015055) -3015089 -(3015105--3015106) -3015121 -(3015179--3015183) -3015208 -3015258 -3015364 -3015392 -(3015470--3015475) -3015489 -(3015536--3015538)
...etc

その時点で、「すべてを修正」に「a」を選択し、次のような行を多数取得しました。

Directories count wrong for group #272 (0, counted=1544).
Fix? yes

Free inodes count wrong (2362853, counted=2128687).
Fix? yes

そして最後にこれ

Block bitmap differences: Group 0 block bitmap does not match checksum.
FIXED.

/dev/sda6: ***** FILE SYSTEM WAS MODIFIED *****

      234177 inodes used (9.91%, out of 2362864)
         897 non-contiguous files (0.4%)
         165 non-contiguous directories (0.1%)
             # of inodes with ind/dind/tind blocks: 0/0/0
             Extent depth histogram: 210228/56
     5915339 blocks used (62.60%, out of 9449951)
           0 bad blocks
           1 large file

      189841 regular files
       19796 directories
           7 character device files
           0 block device files
           0 fifos
           0 links
       24521 symbolic links (23875 fast symbolic links)
           3 sockets
------------
      234168 files

その後はすべてうまくいきました。しかし、再びWindows 7で起動した後、手順をやり直す必要がありました。

奇妙なことに、Ubuntu 18.04のみが影響を受け、Solusは影響を受けませんでした。

私の場合の犯人はWindowsプログラムext2fsdでした-前述のように ここ -そしてそれを取り除くことで問題は完全に修正されました。

1
user47206