initramfs-peek: an initramfs image with a shell, for debugging
This commit is contained in:
parent
888a0d5f74
commit
74f2aa6247
2 changed files with 38 additions and 0 deletions
|
@ -45,6 +45,7 @@
|
|||
|
||||
openwrt = callPackage ./openwrt {};
|
||||
|
||||
initramfs-peek = callPackage ./initramfs-peek {};
|
||||
min-copy-closure = callPackage ./min-copy-closure {};
|
||||
hi = callPackage ./hi {};
|
||||
}
|
||||
|
|
37
pkgs/initramfs-peek/default.nix
Normal file
37
pkgs/initramfs-peek/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
busybox
|
||||
, pkgsBuildBuild
|
||||
, runCommand
|
||||
, cpio
|
||||
, writeReferencesToFile
|
||||
, writeScript
|
||||
} :
|
||||
let
|
||||
inherit (pkgsBuildBuild) gen_init_cpio;
|
||||
script = writeScript "init" ''
|
||||
#!/bin/sh
|
||||
exec >/dev/console
|
||||
echo Running in initramfs
|
||||
PATH=${busybox}/bin:$PATH
|
||||
export PATH
|
||||
mount -t proc none /proc
|
||||
mount -t sysfs none /sys
|
||||
${busybox}/bin/sh
|
||||
'';
|
||||
refs = writeReferencesToFile busybox;
|
||||
in runCommand "initramfs.cpio" { } ''
|
||||
cat << SPECIALS | ${gen_init_cpio}/bin/gen_init_cpio /dev/stdin > out
|
||||
dir /proc 0755 0 0
|
||||
dir /sys 0755 0 0
|
||||
dir /dev 0755 0 0
|
||||
nod /dev/console 0600 0 0 c 5 1
|
||||
nod /dev/mtdblock0 0600 0 0 b 31 0
|
||||
dir /nix 0755 0 0
|
||||
dir /nix/store 0755 0 0
|
||||
dir /bin 0755 0 0
|
||||
file /bin/sh ${busybox}/bin/sh 0755 0 0
|
||||
file /init ${script} 0755 0 0
|
||||
SPECIALS
|
||||
find $(cat ${refs}) | ${pkgsBuildBuild.cpio}/bin/cpio -H newc -o -A -v -O out
|
||||
cp out $out
|
||||
''
|
Loading…
Reference in a new issue