- Timestamp:
- 09/03/2002 02:58:17 AM (22 years ago)
- Branches:
- 10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 6.0, 6.1, 6.2, 6.2.0, 6.2.0-rc1, 6.2.0-rc2, 6.3, 6.3-rc1, 6.3-rc2, 6.3-rc3, 7.10, 7.4, 7.5, 7.6, 7.6-blfs, 7.6-systemd, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, gnome, kde5-13430, kde5-14269, kde5-14686, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, krejzi/svn, lazarus, lxqt, nosym, perl-modules, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, systemd-11177, systemd-13485, trunk, upgradedb, v1_0, v5_0, v5_0-pre1, v5_1, v5_1-pre1, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/test-20220226, xry111/xf86-video-removal
- Children:
- 565318f2
- Parents:
- 4195cd8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
postlfs/config/bootdisk.xml
r4195cd8 r35fd1edf 4 4 5 5 <para>How to create a decent bootdisk</para> 6 <para>The intent here is to create a "rescue bootdisk" that will load 7 enough 'linux' to enable you to do rescue operations. With what is presented here 8 you will be able to do file manipulation, mounting and unmounting, and other tasks. 9 This however is not the limit. The minimal disk is described here, and you can 10 add anything you can fit on the floppy.</para> 11 <para> 12 Boot disk/Rescue Disk 13 </para> 14 <para> 15 First we will create a loopback file to build our rescue disk image on, next 16 we'll make a file system on the image file, then we'll use 'mount' to mount 17 the file as a regular disk, allowing us to read and write files from the loopback file. 18 The following commands will build us a 4 MB image. 19 </para> 20 <screen><userinput>dd if=/dev/zero of=/tmp/rfloppy bs=1k count=4096 && 21 mke2fs -m 0 -N 2000 /tmp/rfloppy && 22 mount -o loop /tmp/rfloppy /mnt/loop1 && 23 rmdir /mnt/loop1/lost+found/</userinput></screen> 6 24 7 </sect1>8 25 26 <para> 27 Now that we have a file mounted and useable, let's prepare it to be 28 filled with useful material. Since this is only a rescue floppy we'll 29 only need to set up the minimum directories.</para> 30 <para><screen><userinput>mkdir /mnt/loop1/{dev,proc,etc,sbin,bin,lib,mnt,usr,var}</userinput></screen></para> 31 <para>Next, we will set up the device files. I use devfs on my system, so 32 the following command works well, as I only have the devices I use 33 anyway. If you used MAKEDEV to create your devices, you'll want to 34 trim the /mnt/loop1/dev directory to reclaim the inode space wasted 35 by all of the devices in the dev directory you don't use.</para> 36 <para><screen><userinput>cp -dpR /dev/* /mnt/loop1/dev</userinput></screen></para> 37 <para>Now to tend to the /etc directory. To start, all we will do is use 38 the passwd and group file that worked for our static chroot environment 39 when we built LFS. We'll also copy the startup scripts over and a few other files 40 that serve well as starting points.</para> 41 <para><screen><userinput>cp -ax /etc/rc* /mnt/loop1/etc 42 cp -ax /etc/fstab /mnt/loop1/etc 43 echo "root:x:0:0:root:/root:/bin/bash" > /mnt/loop1/etc/passwd 44 cat > /mnt/loop1/etc/group << "EOF" 45 root:x:0: 46 bin:x:1: 47 sys:x:2: 48 kmem:x:3: 49 tty:x:4: 50 tape:x:5: 51 daemon:x:6: 52 floppy:x:7: 53 disk:x:8: 54 lp:x:9: 55 dialout:x:10: 56 audio:x:11: 57 EOF</userinput></screen> 58 </para> 59 <para> 60 61 To prevent automatic mounting of hard drive partitions, 62 make sure to add the noauto option in their fstab entry. Also, add the 63 following entries to the /mnt/loop1/etc/fstab to assist with mounting our 64 floppy and the ram image</para> 65 <para><screen>/dev/ram0 / ext2 defaults 66 /dev/fd0 / ext2 defaults</screen></para> 67 68 <para>Next, we will install <ulink url="http://www.busybox.net/downloads/busybox-0.69.3.tar.bz2">busybox</ulink> onto the image. Busybox incorporates many of the *nix functions into a single small executable file.</para> 69 <screen><userinput> 70 tar -xzvf busybox-0.60.3.tar.gz 71 cd busybox-0.60.3 72 make && 73 make PREFIX=/mnt/loop1 install 74 </userinput></screen> 75 76 77 <screen><userinput> 78 cp -ax /var/utmp /mnt/loop1/var 79 mkdir /mnt/loop1/var/log 80 </userinput></screen> 81 <para> 82 Also, keeping in mind your space limitations, copy any other binaries and libraries you 83 need to the image. Use the <userinput>ldd</userinput> command to 84 see which libraries you will need to copy over for any executables. 85 </para> 86 <para> 87 Now, since I use devfs to create devices on the fly and free up precious 88 inodes on the floppy, we'll also install devfsd to facilitate the 89 devices that busybox expects to find.</para> 90 91 <screen><userinput> 92 mv GNUmakefile Makefile 93 make 94 make PREFIX=/mnt/loop1 install 95 cp /lib/libc.so.6 /lib/ld-linux.so.2 /lib/libld.so.2 /tmp 96 strip --strip-deb /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libld.so.2 97 mv /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libld.so.2 /mnt/lib/ 98 </userinput></screen> 99 <para> 100 We will also need to set up an rc script to handle the devfsd startup. 101 Put this in <filename>/mnt/loop1/etc/init.d/rcS</filename></para> 102 <screen> 103 #!/bin/sh 104 mount -t devfs devfs /dev 105 /sbin/devfsd /dev 106 </screen> 107 108 <para> 109 Next create your compressed root filesystem. We use -9 with gzip to 110 make the smallest possible compressed image.</para> 111 <screen><userinput> 112 umount /mnt/loop1 && dd if=/tmp/rfloppy bs=1k | gzip -v9 > rootfs.gz 113 </userinput></screen> 114 <screen><userinput>ls -l rootfs.gz</userinput> to make sure it will fit on the diskette. 115 </screen> 116 <para> 117 make a custom kernel that is optimized for size. Include only those features 118 you will need to rescue your system. no sense in building in support for things 119 like xfree86 dri, etc, as most rescues are performed from the command prompt. 120 </para> 121 <screen><userinput>dd if=rescueimg of=/dev/floppy/0 bs=1k</userinput> 122 429+1 records in 123 429+1 records out 124 <userinput>rdev /dev/floppy/0 /dev/floppy/0</userinput> 125 <userinput>rdev -R /dev/floppy/0 0</userinput> 126 </screen> 127 128 <para>In this example the rescueimage(KERNEL) was 353+1 blocks in size. 129 We will remember this for the next command. We now write the root file 130 system right after the kernel on the floppy. by doing 16384+429+1= 131 16814 </para> 132 <screen><userinput>rdev -r /dev/floppy/0 16738</userinput></screen> 133 134 135 <screen><userinput>dd if=rootfs.gz of=/dev/floppy/0 bs=1k seek=430</userinput></screen> 136 <para>In this command we use seek to find the end of the kernel (429+1) and write the root file system to the floppy. 137 </para> 138 </sect1>
Note:
See TracChangeset
for help on using the changeset viewer.