Rootfs2partition

Материал из Toshiba AC100 wiki
Перейти к навигации Перейти к поиску

Образ партиции из архива rootfs

Подсчет размера

На примере партиции

PartitionId=14
Name=UDB
DeviceId=18
StartSector=1002240
NumSectors=2876672
BytesPerSector=2048

Данные взяты из partitiontable.txt. Как получить эту информацию из тошки написано в разделе бекап. Размер партиции в байтах = размер партиции в секторах * размер сектора в байтах Размер партиции в байтах = 2876672 * 2048 = 5891424256

Создание образа

touch /tmp/newpartition.img
truncate /tmp/newpartition.img -s $((2876672 * 2048))
mkfs.ext4 /tmp/newpartition.img
sudo mkdir -p /mnt/newpartition
sudo mount -t ext4 /tmp/newpartition.img /mnt/newpartition
sudo tar pxzf /tmp/rootfs.tar.gz -C /mnt/newpartition
sudo umount /mnt/newpartition

Создаем новый файл и меняем его размер на нужный. С помощью команды ls можно убедиться, что размер получился правильный.

touch /tmp/newpartition.img
truncate /tmp/newpartition.img -s $((2876672 * 2048))
ls -l /tmp/newpartition.img

Создаем файловую систему на нашем образе. Т.к. файл не является блочным устройством, нас спросят, продолжить или нет. Отвечаем утвердительно.

mkfs.ext4 /tmp/newpartition.img
mke2fs 1.41.14 (22-Dec-2010)
/tmp/newpartition.img is not a block special device.
Proceed anyway? (y,n) y
...

Создаем новую папку и монтируем туда образ. С помощью команды ls можно убедиться, что в образе нет ничего, кроме lost+found.

sudo mkdir -p /mnt/newpartition
sudo mount -t ext4 /tmp/newpartition.img /mnt/newpartition
ls -l /mnt/newpartition

Распаковываем рутфс на образ. Параметры: p - сохранять права, x - распаковать, z - используется сжатие gzip (можно не указывать, сейчас в основном сжатие определяется автоматически), f - указываем файл, который будем распаковывать, С - указывает в какую папку производить распаковку.

sudo tar pxzf /tmp/rootfs.tar.gz -C /mnt/newpartition
ls -l /mnt/newpartition

Не забываем отмонтировать образ.

sudo umount /mnt/newpartition