MODULES_MNT=
IN_INITRD=0
+IN_INITRAMFS=0
NEED_RESIZEFS=1
USERFS_ENCRYPTED=0
{
if [ -e /etc/initrd-release ]
then
- IN_INITRD=1
+ if [ "$(findmnt -n --output=fstype /)" != "rootfs" ]
+ then
+ IN_INITRD=1
+ else
+ IN_INITRAMFS=1
+ fi
ROOTFS_MNT="/sysroot"
else
IN_INITRD=0
+ IN_INITRAMFS=0
ROOTFS_MNT="/"
fi
HALFS_MNT=${ROOTFS_MNT}/hal
if [ x$ROOTFS = "x" ]
then
echo "WARNING : THERE IS NO ROOTFS."
- if [ "$IN_INITRD" = "1" ]
+ if [ "$IN_INITRD" = "1" -o "$IN_INITRAMFS" = "1" ]
then
exec /bin/sh
else
if [ "$IN_INITRD" = "1" ]
then
/sbin/btrfs check $ROOTFS
- if [ "$NEED_RESIZEFS" = "1" ]
+ if [ "$NEED_RESIZEFS" = "1" -o "$IN_INITRAMFS" = "1" ]
then
/bin/mount $ROOTFS $ROOTFS_MNT -o rw,compress-force=lzo
/sbin/btrfs filesystem resize max $ROOTFS_MNT
return
fi
- # check verify boot only in initrd
- if [ "$IN_INITRD" = "1" ]
+ # check verify boot only in initrd/initramfs
+ if [ "$IN_INITRD" = "1" -o "$IN_INITRAMFS" = "1" ]
then
/usr/bin/verityctl create rootfs $ROOTFS $ROOTFS_MNT
case $? in
fi
# ext4 partion
- if [ "$IN_INITRD" = "1" ]
+ if [ "$IN_INITRD" = "1" -o "$IN_INITRAMFS" = "1" ]
then
if [ "$NEED_RESIZEFS" = "1" ]
then
if [ "$IN_INITRD" = "1" ]
then
exec chroot . /sbin/init $@
+ elif [ "$IN_INITRAMFS" = "1" ]
+ then
+ exec switch_root $ROOTFS_MNT /sbin/init $@
else
exec /usr/lib/systemd/systemd $@
fi