diff options
Diffstat (limited to 'src/initrd/btrfs-create.sh')
-rw-r--r-- | src/initrd/btrfs-create.sh | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/initrd/btrfs-create.sh b/src/initrd/btrfs-create.sh index a1a53ed..8a0cd87 100644 --- a/src/initrd/btrfs-create.sh +++ b/src/initrd/btrfs-create.sh | |||
@@ -27,22 +27,28 @@ ceil4() | |||
27 | printf '%d\n' "$x" | 27 | printf '%d\n' "$x" |
28 | } | 28 | } |
29 | 29 | ||
30 | cdrom_has_rootfs() | ||
31 | { | ||
32 | [ ! "$BOOTIF" ] || return | ||
33 | bootwait samizdat-cdrom | ||
34 | [ -d /cdrom/rootfs ] | ||
35 | } | ||
36 | |||
30 | losetup_layers() | 37 | losetup_layers() |
31 | { | 38 | { |
32 | if netbooting; then | 39 | if cdrom_has_rootfs; then |
40 | local fs fs_rw | ||
41 | for fs in /cdrom/rootfs/*.btrfs; do | ||
42 | fs_rw=/"${fs##*/}".rw | ||
43 | dd if=/dev/zero of="$fs_rw" bs=1M count=10 | ||
44 | losetup_snapshot "$fs" "$fs_rw" || return | ||
45 | done | ||
46 | else | ||
33 | bootwait samizdat-nbd-dev | 47 | bootwait samizdat-nbd-dev |
34 | dd if=/dev/zero of=/nbd0.rw bs=1M count=10 | 48 | dd if=/dev/zero of=/nbd0.rw bs=1M count=10 |
35 | dm_snapshot /dev/nbd0 /nbd0.rw | 49 | dm_snapshot /dev/nbd0 /nbd0.rw |
36 | return | 50 | return |
37 | fi | 51 | fi |
38 | |||
39 | bootwait samizdat-cdrom | ||
40 | local fs fs_rw | ||
41 | for fs in /cdrom/rootfs/*.btrfs; do | ||
42 | fs_rw=/"${fs##*/}".rw | ||
43 | dd if=/dev/zero of="$fs_rw" bs=1M count=10 | ||
44 | losetup_snapshot "$fs" "$fs_rw" || return | ||
45 | done | ||
46 | } | 52 | } |
47 | 53 | ||
48 | init_samizdat() | 54 | init_samizdat() |