====== dd - USB フラッシュ、SD カードのバックアップ/復元 ====== ===== バックアップ =====
$ sudo parted -l
モデル: Kingston UHS-II SD Reader (scsi)
ディスク /dev/sdc: 125GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了   サイズ  タイプ   ファイルシステム  フラグ
 1    4194kB  138MB  134MB   primary  fat32             boot, lba
 2    138MB   125GB  125GB   primary  ext4

$ mount
$ sudo umount /run/media/tomoyan/2565-1BA0
$ sudo dd if=/dev/sdc of=~/dietpi-sd-backup_20250517.img bs=16M status=progress
124939927552 bytes (125 GB, 116 GiB) copied, 3069 s, 40.7 MB/s
7447+0 records in
7447+0 records out
124939927552 bytes (125 GB, 116 GiB) copied, 3070.18 s, 40.7 MB/s
Or
$ sudo dd if=/dev/sdc bs=16M status=progress | bzip2 --best > ~/dietpi-sd-backup_20250517.img
===== 復元 =====
$ sudo dd if=~/dietpi-sd-backup_20250517.img of=/dev/sdc bs=16M status=progress
124939927552 bytes (125 GB, 116 GiB) copied, 3069 s, 40.7 MB/s
7447+0 records in
7447+0 records out
124939927552 bytes (125 GB, 116 GiB) copied, 3070.18 s, 40.7 MB/s
===== Raw Image のマウント ===== 参考: [[https://unix.stackexchange.com/questions/753538/mount-img-file-to-extract-data|mount .img file to extract data - Unix & Linux Stack Exchange]]\\ ==== losetup の使い方 ====
$ losetup -h
Usage:
 losetup [options] [<loopdev>]
 losetup [options] -f | <loopdev> <file>

Set up and control loop devices.

Options:
 -a, --all                     list all used devices
 -d, --detach <loopdev>...     detach one or more devices
 -D, --detach-all              detach all used devices
 -f, --find                    find first unused device
 -c, --set-capacity <loopdev>  resize the device
 -j, --associated <file>       list all devices associated with <file>
 -L, --nooverlap               avoid possible conflict between devices

 -o, --offset <num>            start at offset <num> into file
     --sizelimit <num>         device is limited to <num> bytes of the file
 -b, --sector-size <num>       set the logical sector size to <num>
 -P, --partscan                create a partitioned loop device
 -r, --read-only               set up a read-only loop device
     --direct-io[=<on|off>]    open backing file with O_DIRECT
     --loop-ref <string>       loop device reference
     --show                    print device name after setup (with -f)
 -v, --verbose                 verbose mode

 -J, --json                    use JSON --list output format
 -l, --list                    list info about all or specified (default)
 -n, --noheadings              don't print headings for --list output
 -O, --output <cols>           specify columns to output for --list
     --output-all              output all columns
     --raw                     use raw --list output format

 -h, --help                    display this help
 -V, --version                 display version

Available output columns:
         NAME  loop device name
    AUTOCLEAR  autoclear flag set
    BACK-FILE  device backing file
     BACK-INO  backing file inode number
 BACK-MAJ:MIN  backing file major:minor device number
     BACK-MAJ  backing file major device number
     BACK-MIN  backing file minor device number
      MAJ:MIN  loop device major:minor number
          MAJ  loop device major number
          MIN  loop device minor number
       OFFSET  offset from the beginning
     PARTSCAN  partscan flag set
          REF  loop device reference string
           RO  read-only device
    SIZELIMIT  size limit of the file in bytes
          DIO  access backing file with direct-io
      LOG-SEC  logical sector size in bytes

For more details see losetup(8).
==== loop デバイスのセットアップとマウント ==== 参考: [[https://askubuntu.com/questions/483009/mounting-disk-image-in-raw-format|command line - Mounting Disk Image in Raw format - Ask Ubuntu]]\\ [[https://askubuntu.com/questions/1243020/losetup-raspbian-20200505-img-failed-to-set-up-loop-device-device-or-resource|losetup: raspbian-20200505.img: failed to set up loop device: Device or resource busy - Ask Ubuntu]]\\
$ sudo losetup -f -P aiy-vk-001-backup_20250517.img
$ losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE                                    DIO LOG-SEC
/dev/loop0         0      0         0  0 /home/tomoyan/aiy-vk-001-backup_20250517.img   0     512
$ sudo parted /dev/loop0 print
モデル: Loopback デバイス (loopback)
ディスク /dev/loop0: 126GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了   サイズ  タイプ   ファイルシステム  フラグ
 1    4194kB  273MB  268MB   primary  fat32             lba
 2    273MB   126GB  126GB   primary  ext4
 
$ sudo mkdir /run/media/tomoyan/boot
$ sudo mount /dev/loop0p1 /run/media/tomoyan/boot
$ ls /run/media/tomoyan/boot
 COPYING.linux                bcm2709-rpi-2-b.dtb        bcm2711-rpi-cm4.dtb   fixup_cd.dat   start.elf
 LICENCE.broadcom             bcm2710-rpi-2-b.dtb        bootcode.bin          fixup_db.dat   start4.elf
'System Volume Information'   bcm2710-rpi-3-b-plus.dtb   cmdline.txt           fixup_x.dat    start4cd.elf
 bcm2708-rpi-b-plus.dtb       bcm2710-rpi-3-b.dtb        config.txt            issue.txt      start4db.elf
 bcm2708-rpi-b-rev1.dtb       bcm2710-rpi-cm3.dtb        fixup.dat             kernel.img     start4x.elf
 bcm2708-rpi-b.dtb            bcm2710-rpi-zero-2-w.dtb   fixup4.dat            kernel7.img    start_cd.elf
 bcm2708-rpi-cm.dtb           bcm2710-rpi-zero-2.dtb     fixup4cd.dat          kernel7l.img   start_db.elf
 bcm2708-rpi-zero-w.dtb       bcm2711-rpi-4-b.dtb        fixup4db.dat          kernel8.img    start_x.elf
 bcm2708-rpi-zero.dtb         bcm2711-rpi-400.dtb        fixup4x.dat           overlays
==== アンマウント ====
$ sudo umount /run/media/tomoyan/boot
$ sudo rm -r /run/media/tomoyan/boot
===== 参考文献 ===== [[linux:knoppix|KNOPPIX]]\\