- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
postlfs/filesystems/initramfs.xml
r288c825 r5804e5f 10 10 11 11 <sect1info> 12 <othername>$LastChangedBy$</othername>13 12 <date>$Date$</date> 14 13 </sect1info> … … 57 56 volume. They do not support an encrypted root file system or mounting 58 57 the rootfs over a network card. For a more complete capability see 59 <ulink url="http ://www.linuxfromscratch.org/hints/read.html"> the LFS58 <ulink url="https://www.linuxfromscratch.org/hints/read.html"> the LFS 60 59 Hints</ulink> or <ulink 61 60 url="http://fedoraproject.org/wiki/Dracut">dracut</ulink>. … … 67 66 </para> 68 67 69 <screen role="root"><userinput>cat > / sbin/mkinitramfs << "EOF"68 <screen role="root"><userinput>cat > /usr/sbin/mkinitramfs << "EOF" 70 69 <literal>#!/bin/bash 71 70 # This file based in part on the mkinitramfs script for the LFS LiveCD … … 77 76 78 77 if [ "$2" = "lib" ]; then 79 file=$(PATH=/ lib:/usr/lib type -p $1)78 file=$(PATH=/usr/lib type -p $1) 80 79 else 81 80 file=$(type -p $1) … … 83 82 84 83 if [ -n "$file" ] ; then 85 cp $file $WDIR/ $284 cp $file $WDIR/usr/$2 86 85 else 87 86 echo "Missing required file: $1 for directory $2" … … 98 97 fi 99 98 100 if [ -n "$KERNEL_VERSION" ] && [ ! -d "/ lib/modules/$1" ] ; then99 if [ -n "$KERNEL_VERSION" ] && [ ! -d "/usr/lib/modules/$1" ] ; then 101 100 echo "No modules directory named $1" 102 101 exit 1 … … 110 109 111 110 # Systemd installs udevadm in /bin. Other udev implementations have it in /sbin 112 if [ -x / bin/udevadm ] ; then binfiles="$binfiles udevadm"; fi111 if [ -x /usr/bin/udevadm ] ; then binfiles="$binfiles udevadm"; fi 113 112 114 113 sbinfiles="modprobe blkid switch_root" 115 114 116 # Optional files and locations115 # Optional files and locations 117 116 for f in mdadm mdmon udevd udevadm; do 118 if [ -x / sbin/$f ] ; then sbinfiles="$sbinfiles $f"; fi117 if [ -x /usr/sbin/$f ] ; then sbinfiles="$sbinfiles $f"; fi 119 118 done 120 119 121 120 # Add lvm if present (cannot be done with the others because it 122 121 # also needs dmsetup 123 if [ -x / sbin/lvm ] ; then sbinfiles="$sbinfiles lvm dmsetup"; fi122 if [ -x /usr/sbin/lvm ] ; then sbinfiles="$sbinfiles lvm dmsetup"; fi 124 123 125 124 unsorted=$(mktemp /tmp/unsorted.XXXXXXXXXX) … … 132 131 133 132 # Create base directory structure 134 mkdir -p $WDIR/{ bin,dev,lib/firmware,run,sbin,sys,proc,usr}133 mkdir -p $WDIR/{dev,run,sys,proc,usr/{bin,lib/{firmware,modules},sbin}} 135 134 mkdir -p $WDIR/etc/{modprobe.d,udev/rules.d} 136 135 touch $WDIR/etc/modprobe.d/modprobe.conf 137 ln -s lib $WDIR/lib64 138 ln -s ../bin $WDIR/usr/bin 136 ln -s usr/bin $WDIR/bin 137 ln -s usr/lib $WDIR/lib 138 ln -s usr/sbin $WDIR/sbin 139 ln -s lib $WDIR/lib64 139 140 140 141 # Create necessary device nodes … … 152 153 153 154 # Install any firmware present 154 cp -a / lib/firmware $WDIR/lib155 cp -a /usr/lib/firmware $WDIR/usr/lib 155 156 156 157 # Copy the RAID configuration file if present … … 163 164 164 165 if [ -n "$KERNEL_VERSION" ] ; then 165 if [ -x / bin/kmod ] ; then166 if [ -x /usr/bin/kmod ] ; then 166 167 binfiles="$binfiles kmod" 167 168 else … … 173 174 # Install basic binaries 174 175 for f in $binfiles ; do 175 if [ -e /bin/$f ]; then d="/bin"; else d="/usr/bin"; fi 176 ldd $d/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted 177 copy $d/$f bin 176 ldd /usr/bin/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted 177 copy /usr/bin/$f bin 178 178 done 179 179 180 180 for f in $sbinfiles ; do 181 ldd / sbin/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted181 ldd /usr/sbin/$f | sed "s/\t//" | cut -d " " -f1 >> $unsorted 182 182 copy $f sbin 183 183 done 184 184 185 # Add udevd libraries if not in / sbin186 if [ -x / lib/udev/udevd ] ; then187 ldd / lib/udev/udevd | sed "s/\t//" | cut -d " " -f1 >> $unsorted188 elif [ -x / lib/systemd/systemd-udevd ] ; then189 ldd / lib/systemd/systemd-udevd | sed "s/\t//" | cut -d " " -f1 >> $unsorted185 # Add udevd libraries if not in /usr/sbin 186 if [ -x /usr/lib/udev/udevd ] ; then 187 ldd /usr/lib/udev/udevd | sed "s/\t//" | cut -d " " -f1 >> $unsorted 188 elif [ -x /usr/lib/systemd/systemd-udevd ] ; then 189 ldd /usr/lib/systemd/systemd-udevd | sed "s/\t//" | cut -d " " -f1 >> $unsorted 190 190 fi 191 191 192 192 # Add module symlinks if appropriate 193 if [ -n "$KERNEL_VERSION" ] && [ -x / bin/kmod ] ; then194 ln -s kmod $WDIR/ bin/lsmod195 ln -s kmod $WDIR/ bin/insmod193 if [ -n "$KERNEL_VERSION" ] && [ -x /usr/bin/kmod ] ; then 194 ln -s kmod $WDIR/usr/bin/lsmod 195 ln -s kmod $WDIR/usr/bin/insmod 196 196 fi 197 197 198 198 # Add lvm symlinks if appropriate 199 199 # Also copy the lvm.conf file 200 if [ -x / sbin/lvm ] ; then201 ln -s lvm $WDIR/ sbin/lvchange202 ln -s lvm $WDIR/ sbin/lvrename203 ln -s lvm $WDIR/ sbin/lvextend204 ln -s lvm $WDIR/ sbin/lvcreate205 ln -s lvm $WDIR/ sbin/lvdisplay206 ln -s lvm $WDIR/ sbin/lvscan207 208 ln -s lvm $WDIR/ sbin/pvchange209 ln -s lvm $WDIR/ sbin/pvck210 ln -s lvm $WDIR/ sbin/pvcreate211 ln -s lvm $WDIR/ sbin/pvdisplay212 ln -s lvm $WDIR/ sbin/pvscan213 214 ln -s lvm $WDIR/ sbin/vgchange215 ln -s lvm $WDIR/ sbin/vgcreate216 ln -s lvm $WDIR/ sbin/vgscan217 ln -s lvm $WDIR/ sbin/vgrename218 ln -s lvm $WDIR/ sbin/vgck200 if [ -x /usr/sbin/lvm ] ; then 201 ln -s lvm $WDIR/usr/sbin/lvchange 202 ln -s lvm $WDIR/usr/sbin/lvrename 203 ln -s lvm $WDIR/usr/sbin/lvextend 204 ln -s lvm $WDIR/usr/sbin/lvcreate 205 ln -s lvm $WDIR/usr/sbin/lvdisplay 206 ln -s lvm $WDIR/usr/sbin/lvscan 207 208 ln -s lvm $WDIR/usr/sbin/pvchange 209 ln -s lvm $WDIR/usr/sbin/pvck 210 ln -s lvm $WDIR/usr/sbin/pvcreate 211 ln -s lvm $WDIR/usr/sbin/pvdisplay 212 ln -s lvm $WDIR/usr/sbin/pvscan 213 214 ln -s lvm $WDIR/usr/sbin/vgchange 215 ln -s lvm $WDIR/usr/sbin/vgcreate 216 ln -s lvm $WDIR/usr/sbin/vgscan 217 ln -s lvm $WDIR/usr/sbin/vgrename 218 ln -s lvm $WDIR/usr/sbin/vgck 219 219 # Conf file(s) 220 220 cp -a /etc/lvm $WDIR/etc … … 235 235 done 236 236 237 if [ -d / lib/udev ]; then238 cp -a / lib/udev $WDIR/lib239 fi 240 if [ -d / lib/systemd ]; then241 cp -a / lib/systemd $WDIR/lib242 fi 243 if [ -d / lib/elogind ]; then244 cp -a / lib/elogind $WDIR/lib237 if [ -d /usr/lib/udev ]; then 238 cp -a /usr/lib/udev $WDIR/usr/lib 239 fi 240 if [ -d /usr/lib/systemd ]; then 241 cp -a /usr/lib/systemd $WDIR/usr/lib 242 fi 243 if [ -d /usr/lib/elogind ]; then 244 cp -a /usr/lib/elogind $WDIR/usr/lib 245 245 fi 246 246 … … 248 248 if [ -n "$KERNEL_VERSION" ]; then 249 249 find \ 250 / lib/modules/$KERNEL_VERSION/kernel/{crypto,fs,lib} \251 / lib/modules/$KERNEL_VERSION/kernel/drivers/{block,ata,md,firewire} \252 / lib/modules/$KERNEL_VERSION/kernel/drivers/{scsi,message,pcmcia,virtio} \253 / lib/modules/$KERNEL_VERSION/kernel/drivers/usb/{host,storage} \250 /usr/lib/modules/$KERNEL_VERSION/kernel/{crypto,fs,lib} \ 251 /usr/lib/modules/$KERNEL_VERSION/kernel/drivers/{block,ata,md,firewire} \ 252 /usr/lib/modules/$KERNEL_VERSION/kernel/drivers/{scsi,message,pcmcia,virtio} \ 253 /usr/lib/modules/$KERNEL_VERSION/kernel/drivers/usb/{host,storage} \ 254 254 -type f 2> /dev/null | cpio --make-directories -p --quiet $WDIR 255 255 256 cp / lib/modules/$KERNEL_VERSION/modules.{builtin,order} \257 $WDIR/ lib/modules/$KERNEL_VERSION256 cp /usr/lib/modules/$KERNEL_VERSION/modules.{builtin,order} \ 257 $WDIR/usr/lib/modules/$KERNEL_VERSION 258 258 259 259 depmod -b $WDIR $KERNEL_VERSION … … 263 263 264 264 # Prepare early loading of microcode if available 265 if ls / lib/firmware/intel-ucode/* >/dev/null 2>&1 ||266 ls / lib/firmware/amd-ucode/* >/dev/null 2>&1; then265 if ls /usr/lib/firmware/intel-ucode/* >/dev/null 2>&1 || 266 ls /usr/lib/firmware/amd-ucode/* >/dev/null 2>&1; then 267 267 268 268 # first empty WDIR to reuse it … … 272 272 mkdir -p $DSTDIR 273 273 274 if [ -d / lib/firmware/amd-ucode ]; then275 cat / lib/firmware/amd-ucode/microcode_amd*.bin > $DSTDIR/AuthenticAMD.bin274 if [ -d /usr/lib/firmware/amd-ucode ]; then 275 cat /usr/lib/firmware/amd-ucode/microcode_amd*.bin > $DSTDIR/AuthenticAMD.bin 276 276 fi 277 277 278 if [ -d / lib/firmware/intel-ucode ]; then279 cat / lib/firmware/intel-ucode/* > $DSTDIR/GenuineIntel.bin278 if [ -d /usr/lib/firmware/intel-ucode ]; then 279 cat /usr/lib/firmware/intel-ucode/* > $DSTDIR/GenuineIntel.bin 280 280 fi 281 281 … … 292 292 EOF 293 293 294 chmod 0755 / sbin/mkinitramfs</userinput></screen>294 chmod 0755 /usr/sbin/mkinitramfs</userinput></screen> 295 295 296 296 <screen role="root"><userinput>mkdir -p /usr/share/mkinitramfs && … … 298 298 <literal>#!/bin/sh 299 299 300 PATH=/ bin:/usr/bin:/sbin:/usr/sbin300 PATH=/usr/bin:/usr/sbin 301 301 export PATH 302 302
Note:
See TracChangeset
for help on using the changeset viewer.