main/postmarketos-initramfs: add XFS partition support

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7585>
This commit is contained in:
Aster Boese 2025-12-16 23:48:39 -05:00 committed by The Friendly Merge Bot
parent 51719c59b0
commit 9119922edf
No known key found for this signature in database
5 changed files with 39 additions and 12 deletions

View file

@ -23,4 +23,5 @@ usb_f_mass_storage
usb_f_rndis
usb-storage
vfat
xfs
xts

View file

@ -16,10 +16,12 @@
/sbin/dmsetup
/sbin/e2fsck
/sbin/fsck.vfat
/sbin/fsck.xfs
# Full fat modprobe for compressed modules
/sbin/modprobe
/sbin/switch_root
/sbin/udevd
/sbin/xfs_repair
/usr/bin/buffyboard
/usr/bin/iskey
/usr/lib/libz.so.1
@ -27,6 +29,7 @@
/usr/sbin/parted
/usr/sbin/resize.f2fs
/usr/sbin/resize2fs
/usr/sbin/xfs_growfs
/usr/share/consolefonts/ter-128n.psf.gz
/usr/share/initramfs/init_2nd.sh:/init_2nd.sh
/usr/share/initramfs/init_functions_2nd.sh:/init_functions_2nd.sh

View file

@ -1,7 +1,7 @@
# Maintainer: Casey Connolly <kcxt@postmarketos.org>
# Co-Maintainer: Clayton Craft <clayton@craftyguy.net>
pkgname=postmarketos-initramfs
pkgver=3.8.9
pkgver=3.8.10
pkgrel=0
pkgdesc="Base files for the postmarketOS initramfs / initramfs-extra"
url="https://postmarketos.org"
@ -36,6 +36,8 @@ depends="
udev
unudhcpd
util-linux-misc
xfsprogs
xfsprogs-extra
xz
"
makedepends="
@ -107,14 +109,14 @@ package() {
}
sha512sums="
aeebd94af66782dc1394f6dc06ed3baa19fceb2da337a54e4c1b395ab201617de6e070d5d03750d0ab4d9e980283cc57584e038d9d55c82b8a589a915c8b5c7e 00-default.modules
9d1358886fc2d3eac27c13b11e998458da41ac222c1bfa986ae948970419775b5488ab8b8404a6aa0e21c47717316aa9717b5d5ddc53ec610ad875328ea18e9f 00-default.modules
9c0e8f6f61d5da191e03a1aa9d5d0ceb5baf1eae6dbb9bfb0af59817783525119ac8394b135f303f7b6434a3eab0b49185fb90379e06823db847a4999c75ce33 00-initramfs-base.dirs
e268094cbd25e063fdab2226f8cf93885bd8b90455991a53296231a3401a03669440333025ca44b2a8459df98787a5725f7b227ccb9750f8fcad17ef58ba21a1 00-initramfs-base.files
d0f35562365756d93066ce45924d17fb347b54095179c3262daa2f073e12743505cd5d9372ad30485915ca754d95a8edba9a74314e7949e0b3cf6978a87d03a5 00-initramfs-extra-base.files
1bb1930cb5bdb60a074195f772dc015b827487a3efd0d68b51ade52164b6371a756249753fbbdc56e975d18f24ada6a1339ea204d2d8fe7ecd95d7aec8647161 00-initramfs-extra-base.files
e90596540805662211bd2a2e427ce7cc38f6a30023267f902e23f2bae136b6cd8f4f4716b8fb611be9d671a964edd2ecce03fa32bc8024e29b8375b0097fde0c init.sh
c8aab3e0d407a413fa35070b800a6fa733ccb691327f9fef9df1d604cd2a019504ad7c447637df218da113199ff25998ca66a192fcabd5ae62b9873a985db1c1 init_functions.sh
653b6e44f165f710fd11af4244fe13de3ca56de0b67e0867be21ab6a0cb12b3e9cbcafca4300b7d735defe5f9e25b5bfe39a7c0588c858fcd94ea860c93c83eb init_functions.sh
6b4881f9b43c90ebcc70d7b7a192d26a2e3ce01c43b8536fe900c2ffaf74ef035803b9aa083e7a9d5c49c75be8ba6ff22997a037ae4f399e6ee5e1978c4b3f9c init_2nd.sh
d7d003e906ee017dacd1e994729ce1c94ac628ea4a36636bc78eedd16125e3f2cf500ecddac144cc11d69cc741fc5f4512510209236c2fda8a893d506773b965 init_functions_2nd.sh
de14f6f678856ae316f28c003a6293a383aa6b7cbb19951b981430eb0e3b91d0634dedf62d29d105845b6e172daa18e6b6e45e03342d72ae806ca611a1236d18 init_functions_2nd.sh
675e7d5bee39b2df7d322117f8dcaccc274d61beaf4d50ead19bbf2109446d64b1c0aa0c5b4f9846eb6c1c403418f28f6364eff4537ba41120fbfcbc484b7da7 mdev.conf
ba3275a9af788c7c782322a22a0f144d5e50e3498ea6886486a29331f23ae89cd32d500a3635cfa7cab369afba92edc18aeca64ccbf0cd589061cce23d15b46c unudhcpd.conf
"

View file

@ -535,7 +535,13 @@ check_filesystem() {
if [ $? -gt 4 ]; then
status="fail"
fi
;;
xfs)
echo "Auto-repair and check 'xfs' filesystem ($partition)"
fsck.xfs -p "$partition"
if [ $? -gt 4 ]; then
status="fail"
fi
;;
*) echo "WARNING: fsck not supported for '$type' filesystem ($partition)." ;;
esac
@ -582,6 +588,9 @@ mount_boot_partition() {
# ext2 might be handled by the ext2 or ext4 kernel module
# so let mount detect that automatically by omitting -t
;;
xfs)
modprobe xfs
;;
vfat)
modprobe vfat
mount_opts="-t vfat $mount_opts,umask=0077,nosymfollow,codepage=437,iocharset=ascii"
@ -680,11 +689,15 @@ mount_root_partition() {
type="$(get_partition_type "$partition")"
info "Detected $type filesystem"
if ! { [ "$type" = "ext4" ] || [ "$type" = "f2fs" ] || [ "$type" = "btrfs" ]; } then
echo "ERROR: Detected unsupported '$type' filesystem ($partition)."
show_splash "ERROR: unsupported '$type' filesystem ($partition)\\nhttps://postmarketos.org/troubleshooting"
fail_halt_boot
fi
case "$type" in
btrfs|ext4|f2fs|xfs)
;;
*)
echo "ERROR: Detected unsupported '$type' filesystem ($partition)."
show_splash "ERROR: unsupported '$type' filesystem ($partition)\\nhttps://postmarketos.org/troubleshooting"
fail_halt_boot
;;
esac
if ! modprobe "$type"; then
info "Unable to load module '$type' - assuming it's built-in"

View file

@ -104,7 +104,7 @@ unlock_root_partition() {
fi
}
# resize2fs and resize.f2fs are too big
# resize2fs, resize.f2fs, and xfs_growfs are too big
resize_root_filesystem() {
local partition
@ -126,6 +126,10 @@ resize_root_filesystem() {
btrfs)
# Resize happens below after mount
;;
xfs)
# Resize happens below after mount
modprobe xfs
;;
*) echo "WARNING: Can not resize '$type' filesystem ($partition)." ;;
esac
}
@ -145,5 +149,9 @@ resize_filesystem_after_mount() {
echo "Resize 'btrfs' filesystem ($mountpoint)"
btrfs filesystem resize max "$mountpoint"
;;
xfs)
echo "Resize 'xfs' root filesystem ($mountpoint)"
xfs_growfs -d "$mountpoint"
;;
esac
}