module-setup.sh000075500000001023151076114320007522 0ustar00#!/usr/bin/bash # called by dracut check() { [[ $hostonly ]] || [[ $mount_needs ]] && { is_qemu_virtualized && return 0 for fs in "${host_fs_types[@]}"; do [[ $fs == "virtiofs" ]] && return 0 done return 255 } return 0 } # called by dracut depends() { return 0 } # called by dracut installkernel() { instmods virtiofs } # called by dracut install() { inst_hook cmdline 95 "$moddir/parse-virtiofs.sh" inst_hook pre-mount 99 "$moddir/mount-virtiofs.sh" } mount-virtiofs.sh000075500000001175151076114320010114 0ustar00#!/usr/bin/sh if [ "${fstype}" = "virtiofs" -o "${root%%:*}" = "virtiofs" ]; then if ! { modprobe virtiofs || strstr "$(cat /proc/filesystems)" virtiofs; }; then die "virtiofs is required but not available." fi mount -t virtiofs -o "$rflags" "${root#virtiofs:}" "$NEWROOT" 2>&1 | vinfo if ! ismounted "$NEWROOT"; then die "virtiofs: failed to mount root fs" exit 1 fi info "virtiofs: root fs mounted (options: '${rflags}')" [ -f "$NEWROOT"/forcefsck ] && rm -f -- "$NEWROOT"/forcefsck 2> /dev/null [ -f "$NEWROOT"/.autofsck ] && rm -f -- "$NEWROOT"/.autofsck 2> /dev/null fi : parse-virtiofs.sh000075500000000320151076114320010053 0ustar00#!/usr/bin/sh # Accepted formats: # rootfstype=virtiofs root= # root=virtiofs: if [ "${fstype}" = "virtiofs" -o "${root%%:*}" = "virtiofs" ]; then # shellcheck disable=SC2034 rootok=1 fi