blob: 19e4eb9541b55ce1efc53f9bce6554c1d16afcec (
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#!/bin/sh
BUILD=/tmp/ramfs
OUT=/boot/initrd.img
# create base directory structure
printf "creating directories..."
mkdir -p $BUILD/tmp
cd $BUILD
mkdir -p bin dev etc lib proc run sbin sys usr
mkdir -p lib/firmware lib/modules lib/udev
mkdir -p etc/modprobe.d etc/udev
ln -s lib lib64
ln -s ../bin usr/bin
ln -s ../sbin usr/sbin
printf "OK\n"
# copy binaries
printf "populating /bin..."
for b in dash cat cp dd killall kmod ln ls mkdir \
mknod mount rm sed sh sleep umount uname \
basename readlink; do
cp -a /bin/$b bin/
done
ln -s kmod bin/insmod
ln -s kmod bin/lsmod
printf "OK\n"
# create nodes for udev to mount
printf "creating nodes..."
mknod -m 600 dev/console c 5 1
mknod -m 666 dev/null c 1 3
printf "OK\n"
# Copy udev configuration
printf "configuring udev..."
cp /etc/udev/udev.conf etc/udev/
cp -r /etc/udev/rules.d etc/udev/
cp -r /lib/udev/* lib/udev/
printf "OK\n"
# set module order
touch etc/modprobe.d/modprobe.conf
# copy the init script
printf "installing init script..."
cp /sbin/initramfs-init sbin/init
printf "OK\n"
# copy required libraries
printf "populating /lib..."
for l in libc acl attre blkid cap kmod lzma mount ncursesw readline z curses history terminfo zstd; do
cp /lib/lib$l.so lib/
done
ln -s libc.so /ld-musl-$(uname -m).so.1
printf "OK\n"
# copy any firmware
printf "installing firmware..."
cp -r /lib/firmware/* lib/firmware/
printf "OK\n"
# copy any modules
printf "installing modules..."
cp -r /lib/modules/* lib/modules/
printf "OK\n"
# create the initramfs image
printf "creating initramfs image..."
find ./ | cpio -o -H newc | gzip -9 > $OUT
printf "OK\n"
printf "Written initramfs image to $OUT\n"
|