オペレーティングシステム(Raspberry Pi OS Buster)を搭載した32Gb SDカードがあり、標準を使用してバックアップを作成したいと思いますdd
。sudo dd if=/dev/sdb of=/mnt/toshiba2tb/pi20211217.img bs=1M
ソースSDカードは下から完璧に見えます。lsblk --fs
db
├─sdb1 vfat RECOVERY 796F-5014
├─sdb2
├─sdb5 ext4 SETTINGS 3b129a7c-44fe-4062-8819-2be9ec66edea
├─sdb6 vfat boot 3830-AECC
└─sdb7 ext4 root 92847503-3b1f-4e22-9fa0-f6794b8fed0c
dd
イメージが完成したら、新しいカードにコピーしてsudo dd if=/mnt/toshiba2tb/pi20211217.img of=/dev/sdb bs=1M
別のパーティションテーブルを取得し、RPiを起動することもできませんでした。
sdb
├─sdb1 vfat RECOVERY 796F-5014
└─sdb2
fdisk
確認して報告して話すことのできない2T
ゾーン設定...何が起こったのでしょうか?
$ sudo fdisk -l /dev/sdb
Ignoring extra data in partition table 5.
Ignoring extra data in partition table 5.
Ignoring extra data in partition table 5.
Invalid flag 0xffff of EBR (for partition 5) will be corrected by w(rite).
Disk /dev/sdb: 29.7 GiB, 31914983424 bytes, 62333952 sectors
Disk model: LRWM04U
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000edc50
Device Boot Start End Sectors Size Id Type
/dev/sdb1 8192 3781250 3773059 1.8G e W95 FAT16 (LBA)
/dev/sdb2 3781251 60751871 56970621 27.2G 5 Extended
/dev/sdb5 4298748546 8593715840 4294967295 2T ff BBT
詳しくはsudo /sbin/fdisk -l /mnt/toshiba2tb/pi20211217.img
$ sudo /sbin/fdisk -l /mnt/toshiba2tb/pi20211217.img
Ignoring extra data in partition table 5.
Ignoring extra data in partition table 5.
Ignoring extra data in partition table 5.
Invalid flag 0xffff of EBR (for partition 5) will be corrected by w(rite).
Disk /mnt/toshiba2tb/pi20211217.img: 29 GiB, 31104958464 bytes, 60751872 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000edc50
Device Boot Start End Sectors Size Id Type
/mnt/toshiba2tb/pi20211217.img1 8192 3781250 3773059 1.8G e W95 FAT16 (LBA)
/mnt/toshiba2tb/pi20211217.img2 3781251 60751871 56970621 27.2G 5 Extended
/mnt/toshiba2tb/pi20211217.img5 4298748546 8593715840 4294967295 2T ff BBT
私もdd_rescue
新しい画像ファイルを試してみましたが、最後までエラーがないようです。
$ sudo dd_rescue /dev/sdb /mnt/toshiba2tb/pi20211217.rescue.img
dd_rescue: (info) expect to copy 30375936kB from /dev/sdb
dd_rescue: (info): ipos: 30375936.0k, opos: 30375936.0k, xferd: 30375936.0k
errs: 0, errxfer: 0.0k, succxfer: 30375936.0k
+curr.rate: 10374kB/s, avg.rate: 20375kB/s, avg.load: 21.2%
>----------------------------------------.< 99% ETA: 0:00:00
dd_rescue: (info): read /dev/sdb (30375936.0k): EOF
dd_rescue: (info): Summary for /dev/sdb -> /mnt/toshiba2tb/pi20211217.rescue.img:
dd_rescue: (info): ipos: 30375936.0k, opos: 30375936.0k, xferd: 30375936.0k
errs: 0, errxfer: 0.0k, succxfer: 30375936.0k
+curr.rate: 0kB/s, avg.rate: 20312kB/s, avg.load: 21.1%
>----------------------------------------.< 99% ETA: 0:00:00
残念ながら、取得したファイルにはまだ破損の兆候が表示されます。
$ sudo /sbin/fdisk -l /mnt/toshiba2tb/pi20211217.rescue.img
Ignoring extra data in partition table 5.
Ignoring extra data in partition table 5.
Ignoring extra data in partition table 5.
Invalid flag 0xffff of EBR (for partition 5) will be corrected by w(rite).
Disk /mnt/toshiba2tb/pi20211217.rescue.img: 29 GiB, 31104958464 bytes, 60751872 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000edc50
Device Boot Start End Sectors Size Id Type
/mnt/toshiba2tb/pi20211217.rescue.img1 8192 3781250 3773059 1.8G e W95 FAT16 (LBA)
/mnt/toshiba2tb/pi20211217.rescue.img2 3781251 60751871 56970621 27.2G 5 Extended
/mnt/toshiba2tb/pi20211217.rescue.img5 4298748546 8593715840 4294967295 2T ff BBT
確認するためにこの画像をフラッシュしましたが、他のすべての画像と同じ問題があります。起動時に「設定」パーティションが見つからず、そこで永遠に停止します。
これがパーティションテーブルの問題である可能性があるとしますsfdisk -d /dev/sdb > pi.partitiontable
。
$ cat pi.partitiontable
label: dos
label-id: 0x000edc50
device: /dev/sdb
unit: sectors
/dev/sdb1 : start= 8192, size= 3773059, type=e
/dev/sdb2 : start= 3781251, size= 56970621, type=5
/dev/sdb5 : start= 3784704, size= 65534, type=83
/dev/sdb6 : start= 3850240, size= 147454, type=c
/dev/sdb7 : start= 3997696, size= 56754176, type=83
その後、このパーティションテーブルを新しくコピーしたSDカードにコピーしました
$ sudo sfdisk /dev/sdb < pi.partitiontable
。
Ignoring extra data in partition table 5.
Ignoring extra data in partition table 5.
Ignoring extra data in partition table 5.
Invalid flag 0xffff of EBR (for partition 5) will be corrected by w(rite).
Checking that no-one is using this disk right now ... OK
Disk /dev/sdb: 29.7 GiB, 31914983424 bytes, 62333952 sectors
Disk model: LRWM04U
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000edc50
Old situation:
Device Boot Start End Sectors Size Id Type
/dev/sdb1 8192 3781250 3773059 1.8G e W95 FAT16 (LBA)
/dev/sdb2 3781251 60751871 56970621 27.2G 5 Extended
/dev/sdb5 4298748546 8593715840 4294967295 2T ff BBT
>>> Script header accepted. >>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0x000edc50.
/dev/sdb1: Created a new partition 1 of type 'W95 FAT16 (LBA)' and of size 1.8 GiB.
Partition #1 contains a vfat signature.
/dev/sdb2: Created a new partition 2 of type 'Extended' and of size 27.2 GiB.
/dev/sdb3: Created a new partition 5 of type 'Linux' and of size 32 MiB.
/dev/sdb6: Sector 3850240 is already allocated.
Created a new partition 6 of type 'W95 FAT32 (LBA)' and of size 72 MiB.
/dev/sdb7: Sector 3997696 is already allocated.
Created a new partition 7 of type 'Linux' and of size 27.1 GiB.
/dev/sdb8: Done.
New situation:
Disklabel type: dos
Disk identifier: 0x000edc50
Device Boot Start End Sectors Size Id Type
/dev/sdb1 8192 3781250 3773059 1.8G e W95 FAT16 (LBA)
/dev/sdb2 3781251 60751871 56970621 27.2G 5 Extended
/dev/sdb5 3784704 3850237 65534 32M 83 Linux
/dev/sdb6 3852286 3999739 147454 72M c W95 FAT32 (LBA)
/dev/sdb7 4001788 60751871 56750084 27.1G 83 Linux
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
このカードを使用すると、起動時にセットアップパーティションが破損していることを示すメッセージが表示されるため、オペレーティングシステムを再インストールする必要があります。これは古いエラーとは異なり、古いカードからインポートされ、新しいカードにコピーされたパーティションテーブルのソートが正しくないか、若干の互換性がないためです。パーティションテーブルを少し調整して、このアプローチが可能かどうかを知りたいです。
ベストアンサー1
fdisk -l
画像の出力は、画像が悪いことを示します。カードリーダーを使用して必要な数のSDカードに書き込むことはできますが、常に悪い結果が得られます。
カードが正しく読み取れない場合を明示的に通知するツールを使用して画像を再度読み取る必要があります。
ddrescue /dev/sdb /mnt/toshiba2tb/pi20211217.img