Wiifefsの元に戻す --all --force /dev/sda? /dev/sda

Wiifefsの元に戻す --all --force /dev/sda? /dev/sda

オペレーティングシステム:Debian uname -aBullseye

Linux backup-server 5.10.0-5-amd64 #1 SMP Debian 5.10.24-1 (2021-03-19) x86_64 GNU/Linux

私は方法を探しています。元に戻すwipefs注文する:

wipefs --all --force /dev/sda? /dev/sda

前の構造は次のとおりです。

fdisk -l /dev/sda

Disk /dev/sda: 223.57 GiB, 240057409536 bytes, 468862128 sectors
Disk model: CT240BX200SSD1  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 8D5A08BF-0976-4CDB-AEA2-8A0EAD44575E

Device       Start       End   Sectors   Size Type
/dev/sda1     2048   1050623   1048576   512M EFI System
/dev/sda2  1050624 468860927 467810304 223.1G Linux filesystem

そして、コマンドの出力は次のようになりますwipefs(まだ私の端末にあります)。

/dev/sda1: 8 bytes were erased at offset 0x00000052 (vfat): 46 41 54 33 32 20 20 20
/dev/sda1: 1 byte was erased at offset 0x00000000 (vfat): eb
/dev/sda1: 2 bytes were erased at offset 0x000001fe (vfat): 55 aa
/dev/sda2: 2 bytes were erased at offset 0x00000438 (ext4): 53 ef
/dev/sda: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/sda: 8 bytes were erased at offset 0x37e4895e00 (gpt): 45 46 49 20 50 41 52 54
/dev/sda: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa

記事を見つけたかもしれません。https://sysbits.org/、今すぐ: https://sysbits.org/undoing-wipefs/

引用しますワイプそして元に戻すそこで私はそれが正常かどうかを知りたかったし、私のサーバーで安全にできるかどうかを知りたかったのですが、まだサーバーを再起動していないので、問題を解決する方法を見つけようとしました。地獄スペルエラー:

  1. ワイプ部分

    wipefs -a /dev/sda
    
    /dev/sda: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
    /dev/sda: 8 bytes were erased at offset 0x3b9e655e00 (gpt): 45 46 49 20 50 41 52 54
    /dev/sda: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
    
  2. 元に戻す部分

    echo -en '\x45\x46\x49\x20\x50\x41\x52\x54' | dd of=/dev/sda bs=1 conv=notrunc seek=$((0x00000200))
    echo -en '\x45\x46\x49\x20\x50\x41\x52\x54' | dd of=/dev/sda bs=1 conv=notrunc seek=$((0x3b9e655e00))
    echo -en '\x55\xaa' | dd of=/dev/sda bs=1 conv=notrunc seek=$((0x000001fe))
    
    partprobe /dev/sda
    

可能な代替ソリューション

testdisk私はSSDドライブでこれを実行して多くのパーティションを見つけましたが、次の2つだけがオリジナルと一致しました。

TestDisk 7.1, Data Recovery Utility, July 2019
Christophe GRENIER <[email protected]>
https://www.cgsecurity.org

Disk /dev/sda - 240 GB / 223 GiB - CHS 29185 255 63

     Partition                  Start        End    Size in sectors

 1 P EFI System                  2048    1050623    1048576 [EFI System Partition] [NO NAME]
 2 P Linux filesys. data      1050624  468860927  467810304

Write(パーティション構造をディスクに書き込む)ことはできますか?そうでなければなぜならないのですか?

ベストアンサー1

幸いなことに、wipefs実際に拭いた部分が印刷されます。

これら、

wipefs -a /dev/sda
/dev/sda: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/sda: 8 bytes were erased at offset 0x3b9e655e00 (gpt): 45 46 49 20 50 41 52 54
/dev/sda: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa

echo -en '\x45\x46\x49\x20\x50\x41\x52\x54' | dd of=/dev/sda bs=1 conv=notrunc seek=$((0x00000200))
echo -en '\x45\x46\x49\x20\x50\x41\x52\x54' | dd of=/dev/sda bs=1 conv=notrunc seek=$((0x3b9e655e00))
echo -en '\x55\xaa' | dd of=/dev/sda bs=1 conv=notrunc seek=$((0x000001fe))

全体的に私は合理的なようです。

しかし、オフセットはあなたの場合とは異なります!で得られた値を使用する必要がありますwipefs

オフセット値(0x3b9e655e00対0x37e4895e00)に基づいて、そのディスクはユーザーディスクよりわずかに大きい(〜256GB対〜240GB)。その値を使用すると、ディスクの末尾にあるバックアップGPTが破損することを意味します。最初のコピーが破損しない限り、すべてのパーティションツールはそれを書き換えることができる必要があるため、これは重要ではありません。

ただし、その逆が真であり、ディスクサイズ内の誤ったオフセットを使用すると、最終的にドライブの任意の部分が上書きされます。悪い。

また、ファイルシステムのマジックナンバーも正しい場所になければなりません。


VFATイメージで消去と元に戻すことをテストし、バージョンを読む前に頭に次のように書きました。

printf "$(printf '\\x%s' 46 41 54 31 36 20 20 20)" |
  dd bs=1 conv=notrunc seek=$(printf "%d" 0x00000036) of=test.vfat

これは単一のwipefs出力ラインに対するものです(他の出力ラインでも繰り返し)。

test.vfat: 8 bytes were erased at offset 0x00000036 (vfat): 46 41 54 31 36 20 20 20

先頭にネストされたprintfを使用すると、出力を手動で変更せずに出力をコピーして貼り付けることができますwipefs46 41 54 31...\x46\x41\x54\x31...

繰り返しますが、正しいオフセットに正しい値を入力するように注意する必要があります!

追加の自動化はそれほど悪くないかもしれませんが、関連するリスクを考慮すると、広範なテストなしにこのようなスクリプトを公開することはできなくなります。

可能であれば、いたずらをする前にディスクの内容のコピーを作成してください。

おすすめ記事