目次
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 のマウント
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 デバイスのセットアップとマウント
参考: command line - Mounting Disk Image in Raw format - Ask Ubuntu
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