オペレーティングシステム:Debian uname -a
Bullseye
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/
引用しますワイプそして元に戻すそこで私はそれが正常かどうかを知りたかったし、私のサーバーで安全にできるかどうかを知りたかったのですが、まだサーバーを再起動していないので、問題を解決する方法を見つけようとしました。地獄スペルエラー:
ワイプ部分
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)) 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を使用すると、出力を手動で変更せずに出力をコピーして貼り付けることができますwipefs
。46 41 54 31...
\x46\x41\x54\x31...
繰り返しますが、正しいオフセットに正しい値を入力するように注意する必要があります!
追加の自動化はそれほど悪くないかもしれませんが、関連するリスクを考慮すると、広範なテストなしにこのようなスクリプトを公開することはできなくなります。
可能であれば、いたずらをする前にディスクの内容のコピーを作成してください。
答え2
私の質問にキャンセルwipefs
、私はRecreate Partitionを使用することを選択しましたtestdisk
。測定に時間がかかるので(単にクリックするのではなく)、これを避けることをお勧めします。Writeその前に、両方のパーティションを再確認する必要がありました。testdisk
構造を読んでみましょう。ずっと読んでみました。いくつかのディレクトリ - かなり大丈夫だった。
私が考えなかったのは、基本的なファイルシステムでした。確かに今は始まっていません。
私はライブLinux MintでGPartedの写真を撮った。
コマンドの完全な出力は次のとおりです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
削除されたコンテンツを元に戻すには:
まず、私のExt4パーティションは次のようになります。
echo -en '\x53\xef' | dd of=/dev/sda2 bs=1 conv=notrunc seek=$((0x00000438))
partprobe /dev/sda2
これでインストールが可能で、すべてのファイルを読み取ることができます。
2.私のEFIパーティション:
echo -en '\x46\x41\x54\x33\x32\x20\x20\x20' | dd of=/dev/sda1 bs=1 conv=notrunc seek=$((0x00000052))
echo -en '\xeb' | dd of=/dev/sda1 bs=1 conv=notrunc seek=$((0x00000000))
echo -en '\x55\xaa' | dd of=/dev/sda1 bs=1 conv=notrunc seek=$((0x000001fe))
partprobe /dev/sda1
再起動してサーバーにSSHで接続しましたが、今は問題ありません。
答え3
ちょうど「書き込み」(パーティション構造をディスクに書き込む)を押すことができますか?
すべてのパーティションがリストされている場合にのみ適用されます。
もしすべてのパーティションのリストそしてこの場合のみで確認済み書くEnter、y、およびOKを押します。
これでパーティションがパーティションテーブルに登録されました。