summaryrefslogtreecommitdiffstats
path: root/modules.d/90dmsquash-live/module-setup.sh
blob: 99d21143b9fd7e7439979130b2d7c7576358bb37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/bash

# called by dracut
check() {
    # a live host-only image doesn't really make a lot of sense
    [[ $hostonly ]] && return 1
    return 255
}

# called by dracut
depends() {
    # if dmsetup is not installed, then we cannot support fedora/red hat
    # style live images
    echo dm rootfs-block img-lib overlayfs
    return 0
}

# called by dracut
installkernel() {
    instmods squashfs loop iso9660 erofs
}

# called by dracut
install() {
    inst_multiple umount dmsetup blkid dd losetup blockdev find rmdir grep
    inst_multiple -o checkisomd5
    inst_hook cmdline 30 "$moddir/parse-dmsquash-live.sh"
    inst_hook cmdline 31 "$moddir/parse-iso-scan.sh"
    inst_hook pre-udev 30 "$moddir/dmsquash-live-genrules.sh"
    inst_hook pre-udev 30 "$moddir/dmsquash-liveiso-genrules.sh"
    inst_hook pre-pivot 20 "$moddir/apply-live-updates.sh"
    inst_script "$moddir/dmsquash-live-root.sh" "/sbin/dmsquash-live-root"
    inst_script "$moddir/iso-scan.sh" "/sbin/iso-scan"
    if dracut_module_included "systemd-initrd"; then
        inst_script "$moddir/dmsquash-generator.sh" "$systemdutildir"/system-generators/dracut-dmsquash-generator
        inst_simple "$moddir/checkisomd5@.service" "/etc/systemd/system/checkisomd5@.service"
    fi
    dracut_need_initqueue
}