Изучение процесса создания образа sd-карты для разработки платы.
На операционной системе Ubuntu 20.04 устанавливаются инструменты, необходимые для создания образа.
sudo apt install kpartx
sudo dd if=/dev/zero of=openeuler.img bs=1M count=8000 status=progress
sync
sudo fdisk -l
Просмотр информации о sd-карте:
Disk /dev/sdb: 29.75 GiB, 31927042048 bytes, 62357504 sectors
Disk model: Storage Device
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: 0x87a9b3d3
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 526335 524288 256M 6 FAT16
/dev/sdb2 526336 62357503 61831168 29.5G 83 Linux
Создание разделов в файле img на основе информации о sd-карте.
sudo parted openeuler.img --script -- mklabel msdos
sudo parted openeuler.img --script -- mkpart primary fat16 2048s 526335s
sudo parted openeuler.img --script -- mkpart primary ext4 526336s -1
Проверка разделов файла img:
sudo parted openeuler.img
Вывод:
GNU Parted 3.3
Using /home/riscv/riscv64-linux/openeuler.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: (file)
Disk /home/riscv/riscv64-linux/openeuler.img: 8389MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 269MB 268MB primary lba
2 269MB 8388MB 8118MB primary
Сначала используется команда df -ah для поиска свободного /dev/loop для монтирования виртуального диска.
sudo losetup /dev/loop18 openeuler.img
sudo kpartx -av /dev/loop18
Отображение:
add map loop18p1 (253:0): 0 524288 linear 7:18 2048
add map loop18p2 (253:1): 0 15855616 linear 7:18 526336
Форматирование p1:
sudo mkfs.msdos /dev/mapper/loop18p1
Отображение:
mkfs.fat 4.1 (2017-01-24)
Форматирование p2:
sudo mkfs.ext4 /dev/mapper/loop18p2
Отображение:
mke2fs 1.45.5 (07-Jan-2020)
Discarding device blocks: done
Creating filesystem with 1981952 4k blocks and 495808 inodes
Filesystem UUID: ea4488f6-554e-4d3f-af15-49583f6878c9
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
Повторная проверка файла img:
sudo parted openeuler.img
Отображение:
GNU Parted 3.3
Using /home/riscv/riscv64-linux/openeuler.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: (file)
Disk /home/riscv/riscv64-linux/openeuler.img: 8389MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 269MB 268MB primary fat16 lba
2 269MB 8388MB 8118MB primary ext4
Файл img готов к использованию.
Монтирование каталогов:
mkdir boot
mkdir rootfs
sudo mount /dev/mapper/loop18p1 boot/
sudo mount /dev/mapper/loop18p2 rootfs/
Копирование содержимого:
sudo cp -rf /media/riscv/5EB6-BE06/* boot/
sudo cp -rf /media/riscv/7e64dffd-4d0a-4061-bd3f-23d33de0b2ad/* rootfs/
Размонтирование каталогов:
sudo umount boot
sudo umount rootfs
Удаление img:
sudo kpartx -d openeuler.img
Отображение:
loop deleted : /dev/loop18
Процесс создания образа openeuler.img завершён. Далее можно упаковать и сжать образ с помощью команды:
zstd openeuler.img
zstd -d openeuler.img.zst
Получаем файл openeuler.img.
Подготовьте пустую sd-карту. Затем используйте команду dd для записи образа на карту:
sudo dd if=./openeuler.img of=/dev/sdb bs=1M iflag=fullblock oflag=direct conv=fsync status=progress
После завершения записи можно использовать инструмент gparted для изменения размера раздела rootfs (по умолчанию 8 ГБ).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )