From f210ee9d2daf08ecff5fed1f78f5ac09bfcb20ba Mon Sep 17 00:00:00 2001 From: alexkar598 <25136265+alexkar598@users.noreply.github.com> Date: Sat, 22 Jun 2024 03:57:37 -0400 Subject: [PATCH] SquashFS + readonly fs --- byondvm/busybox.config | 6 ++-- byondvm/kernel.config | 49 +++++++++++++++--------------- configs/byondvm_defconfig | 5 +-- rootfs_overlay/etc/fstab | 12 ++++++++ rootfs_overlay/etc/inittab | 5 ++- rootfs_overlay/mnt/host/.empty | 0 rootfs_overlay/mnt/overlays/.empty | 0 7 files changed, 44 insertions(+), 33 deletions(-) create mode 100644 rootfs_overlay/etc/fstab create mode 100644 rootfs_overlay/mnt/host/.empty create mode 100644 rootfs_overlay/mnt/overlays/.empty diff --git a/byondvm/busybox.config b/byondvm/busybox.config index add3b20..d37ea95 100644 --- a/byondvm/busybox.config +++ b/byondvm/busybox.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Busybox version: 1.36.1 -# Fri Jun 21 20:59:07 2024 +# Sat Jun 22 02:12:10 2024 # CONFIG_HAVE_DOT_CONFIG=y @@ -640,7 +640,7 @@ CONFIG_FEATURE_DMESG_PRETTY=y # CONFIG_LAST is not set # CONFIG_FEATURE_LAST_FANCY is not set # CONFIG_LOSETUP is not set -# CONFIG_LSPCI is not set +CONFIG_LSPCI=y # CONFIG_LSUSB is not set # CONFIG_MDEV is not set # CONFIG_FEATURE_MDEV_CONF is not set @@ -814,7 +814,7 @@ CONFIG_FEATURE_LESS_DASHCMD=y CONFIG_FEATURE_LESS_LINENUMS=y CONFIG_FEATURE_LESS_RAW=y CONFIG_FEATURE_LESS_ENV=y -# CONFIG_LSSCSI is not set +CONFIG_LSSCSI=y # CONFIG_MAKEDEVS is not set # CONFIG_FEATURE_MAKEDEVS_LEAF is not set # CONFIG_FEATURE_MAKEDEVS_TABLE is not set diff --git a/byondvm/kernel.config b/byondvm/kernel.config index c98d4d7..50d28be 100644 --- a/byondvm/kernel.config +++ b/byondvm/kernel.config @@ -2,13 +2,6 @@ CONFIG_KERNEL_LZ4=y CONFIG_NO_HZ_IDLE=y CONFIG_HIGH_RES_TIMERS=y # CONFIG_PREEMPT_DYNAMIC is not set -CONFIG_BLK_DEV_INITRD=y -# CONFIG_RD_GZIP is not set -# CONFIG_RD_BZIP2 is not set -# CONFIG_RD_LZMA is not set -# CONFIG_RD_XZ is not set -# CONFIG_RD_LZO is not set -# CONFIG_RD_ZSTD is not set CONFIG_EXPERT=y # CONFIG_UID16 is not set # CONFIG_SGETMASK_SYSCALL is not set @@ -29,18 +22,12 @@ CONFIG_MPENTIUMIII=y # CONFIG_X86_UMIP is not set # CONFIG_RELOCATABLE is not set CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="console=ttyS1 HOME=/root" +CONFIG_CMDLINE="console=ttyS1 HOME=/root root=/dev/sda ro" # CONFIG_MODIFY_LDT_SYSCALL is not set # CONFIG_CPU_MITIGATIONS is not set # CONFIG_SUSPEND is not set -# CONFIG_ACPI_SPCR_TABLE is not set -# CONFIG_ACPI_REV_OVERRIDE_POSSIBLE is not set -# CONFIG_ACPI_AC is not set -# CONFIG_ACPI_BATTERY is not set -# CONFIG_ACPI_BUTTON is not set -# CONFIG_ACPI_FAN is not set -# CONFIG_ACPI_THERMAL is not set -# CONFIG_ACPI_TABLE_UPGRADE is not set +# CONFIG_ACPI is not set +CONFIG_CPU_IDLE=y # CONFIG_VIRTUALIZATION is not set CONFIG_JUMP_LABEL=y CONFIG_STATIC_KEYS_SELFTEST=y @@ -49,7 +36,10 @@ CONFIG_STATIC_CALL_SELFTEST=y # CONFIG_STACKPROTECTOR is not set # CONFIG_RANDOMIZE_KSTACK_OFFSET is not set # CONFIG_GCC_PLUGINS is not set -# CONFIG_BLOCK is not set +# CONFIG_BLOCK_LEGACY_AUTOLOAD is not set +CONFIG_PARTITION_ADVANCED=y +# CONFIG_MSDOS_PARTITION is not set +# CONFIG_EFI_PARTITION is not set # CONFIG_COREDUMP is not set # CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_SECRETMEM is not set @@ -65,14 +55,17 @@ CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y # CONFIG_FW_LOADER is not set # CONFIG_ALLOW_DEV_COREDUMP is not set -# CONFIG_PNP_DEBUG_MESSAGES is not set -CONFIG_INPUT_FF_MEMLESS=y -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +CONFIG_ATA=y +# CONFIG_ATA_VERBOSE_ERROR is not set +# CONFIG_ATA_FORCE is not set +# CONFIG_SATA_PMP is not set +CONFIG_ATA_PIIX=y +# CONFIG_INPUT is not set # CONFIG_SERIO_I8042 is not set # CONFIG_SERIO_SERPORT is not set # CONFIG_VT is not set -# CONFIG_UNIX98_PTYS is not set # CONFIG_LEGACY_PTYS is not set # CONFIG_LEGACY_TIOCSTI is not set # CONFIG_LDISC_AUTOLOAD is not set @@ -82,12 +75,11 @@ CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y -CONFIG_SERIAL_NONSTANDARD=y +CONFIG_VIRTIO_CONSOLE=y # CONFIG_HW_RANDOM is not set # CONFIG_DEVMEM is not set # CONFIG_DEVPORT is not set # CONFIG_HWMON is not set -# CONFIG_HID_SUPPORT is not set # CONFIG_USB_SUPPORT is not set CONFIG_VIRTIO_PCI=y # CONFIG_VIRTIO_PCI_LEGACY is not set @@ -95,8 +87,15 @@ CONFIG_VIRTIO_PCI=y # CONFIG_SURFACE_PLATFORMS is not set # CONFIG_X86_PLATFORM_DEVICES is not set # CONFIG_IOMMU_SUPPORT is not set +CONFIG_OVERLAY_FS=y +# CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set +CONFIG_OVERLAY_FS_INDEX=y +CONFIG_OVERLAY_FS_METACOPY=y CONFIG_FSCACHE=y -# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_FILE_DIRECT=y +# CONFIG_SQUASHFS_ZLIB is not set +CONFIG_SQUASHFS_LZ4=y CONFIG_9P_FS=y CONFIG_9P_FSCACHE=y CONFIG_9P_FS_POSIX_ACL=y diff --git a/configs/byondvm_defconfig b/configs/byondvm_defconfig index 83177c8..d6d80cd 100644 --- a/configs/byondvm_defconfig +++ b/configs/byondvm_defconfig @@ -22,7 +22,8 @@ BR2_PACKAGE_NCURSES=y # BR2_PACKAGE_URANDOM_SCRIPTS is not set BR2_PACKAGE_UTIL_LINUX=y BR2_PACKAGE_UTIL_LINUX_LIBUUID=y -BR2_TARGET_ROOTFS_CPIO=y -BR2_TARGET_ROOTFS_CPIO_LZ4=y +BR2_TARGET_ROOTFS_SQUASHFS=y +BR2_TARGET_ROOTFS_SQUASHFS_BS_1024K=y +BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y # BR2_TARGET_ROOTFS_TAR is not set BR2_PACKAGE_BYONDVM_CONTROLLER=y diff --git a/rootfs_overlay/etc/fstab b/rootfs_overlay/etc/fstab new file mode 100644 index 0000000..918f727 --- /dev/null +++ b/rootfs_overlay/etc/fstab @@ -0,0 +1,12 @@ +# +/dev/root / ext2 rw,noauto 0 1 +proc /proc proc defaults 0 0 +devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 +tmpfs /dev/shm tmpfs mode=1777 0 0 +tmpfs /tmp tmpfs mode=1777 0 0 +tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0 +sysfs /sys sysfs defaults 0 0 +host9p /mnt/host 9p defaults 0 0 +ramfs /mnt/overlays ramfs defaults 0 0 +overlay /root overlay lowerdir=/root,upperdir=/mnt/overlays/root,workdir=/mnt/overlays/rootw 0 0 +overlay /var overlay lowerdir=/var,upperdir=/mnt/overlays/var,workdir=/mnt/overlays/varw 0 0 diff --git a/rootfs_overlay/etc/inittab b/rootfs_overlay/etc/inittab index 344c56c..3c3be14 100644 --- a/rootfs_overlay/etc/inittab +++ b/rootfs_overlay/etc/inittab @@ -15,11 +15,10 @@ # Startup the system ::sysinit:/bin/mount -t proc proc /proc -::sysinit:/bin/mount -o remount,rw / ::sysinit:/bin/mkdir -p /dev/pts /dev/shm +::sysinit:/bin/mount -t ramfs ramfs /mnt/overlays +::sysinit:/bin/mkdir /mnt/overlays/root /mnt/overlays/rootw /mnt/overlays/var /mnt/overlays/varw ::sysinit:/bin/mount -a -::sysinit:/bin/mkdir -p /mnt/host -::sysinit:/bin/mount -t 9p host9p /mnt/host null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin diff --git a/rootfs_overlay/mnt/host/.empty b/rootfs_overlay/mnt/host/.empty new file mode 100644 index 0000000..e69de29 diff --git a/rootfs_overlay/mnt/overlays/.empty b/rootfs_overlay/mnt/overlays/.empty new file mode 100644 index 0000000..e69de29