mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
aed4799d6d
This patch adds support for squashfs as the root filesystem. advantages: - migrate from a existing -ext4 installation and back with the sysupgrade utility - existing partition layout will not be lost during switch - slightly smaller image size as compared to the -ext4 image. disadvantages: - needs f2fs + tools. This is because fstools rootdisk.c decides based on the partition size (currently root partitions > 100 MiB) f2fs is used as the rootfs_data filesystem. - rootfs_data is placed into the rootfs partition after the squashfs. This makes it difficult for tools that expect a /dev/sda${X} device. It also makes it difficult for data recovery tools as they might not expect to find a embedded partition or will be slightly confused. ... or will not support f2fs. For people with existing build configurations: make sure to include mkf2fs and f2fsck packages into the image. Otherwise the new -squashfs image will only boot from the ram-overlay. Note: All overlay data (configurations/all installed packages/...) will be placed in inside the rootfs partition (i.e. /dev/sda2) just after the squashfs image. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
28 lines
578 B
Bash
Executable File
28 lines
578 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -x
|
|
[ $# -eq 5 ] || {
|
|
echo "SYNTAX: $0 <file> <bootfs image> <rootfs image> <bootfs size> <rootfs size>"
|
|
exit 1
|
|
}
|
|
|
|
OUTPUT="$1"
|
|
BOOTFS="$2"
|
|
ROOTFS="$3"
|
|
BOOTFSSIZE="$4"
|
|
ROOTFSSIZE="$5"
|
|
|
|
head=4
|
|
sect=63
|
|
|
|
set `ptgen -o $OUTPUT -h $head -s $sect -l 4096 -t 83 -p ${BOOTFSSIZE}M -t 83 -p ${ROOTFSSIZE}M`
|
|
|
|
BOOTOFFSET="$(($1 / 512))"
|
|
BOOTSIZE="$(($2 / 512))"
|
|
ROOTFSOFFSET="$(($3 / 512))"
|
|
ROOTFSSIZE="$(($4 / 512))"
|
|
|
|
dd bs=512 if="$BOOTFS" of="$OUTPUT" seek="$BOOTOFFSET" conv=notrunc
|
|
dd bs=512 if="$ROOTFS" of="$OUTPUT" seek="$ROOTFSOFFSET" conv=notrunc
|
|
|