Changeset 9ed94cb for postlfs/config/bootdisk.xml
- Timestamp:
- 08/24/2003 02:29:16 PM (21 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, v5_0, v5_0-pre1, v5_1, v5_1-pre1, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/test-20220226, xry111/xf86-video-removal
- Children:
- 36c9064
- Parents:
- 0108c1d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
postlfs/config/bootdisk.xml
r0108c1d r9ed94cb 7 7 enough 'linux' to enable you to do rescue operations. What is presented here 8 8 is enough 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 on which we build the root file 9 This, however, is not the limit. The minimal disk is described here, and you 10 can add anything you can fit on the floppy.</para> 11 12 <para>Boot Disk/Rescue Disk</para> 13 14 <para>First we will create a loopback file on which we build the root file 16 15 system for our rescue disk image. This is commonly known as the initial 17 16 ramdisk, or initrd for short, and it is automatically loaded by the boot 18 17 process if all setup is done correctly.</para> 19 <para> 20 Next we'll make a file system on the loopback file and use 'mount' to mount 21 the loopback file as a regular disk, allowing us to read and write files there. 22 The following commands will build us a 4 MB image. 23 </para> 24 <screen><userinput>dd if=/dev/zero of=/tmp/rfloppy bs=1k count=4096 && 18 19 <para>Next we'll make a file system on the loopback file and use 20 <command>mount</command> to mount the loopback file as a regular disk, allowing 21 us to read and write files there. The following commands will build us a 4 MB 22 image.</para> 23 24 <screen><userinput><command>dd if=/dev/zero of=/tmp/rfloppy bs=1k count=4096 && 25 25 mke2fs -m 0 -N 2000 /tmp/rfloppy && 26 26 mount -o loop /tmp/rfloppy /mnt/loop1 && 27 rmdir /mnt/loop1/lost+found/</ userinput></screen>27 rmdir /mnt/loop1/lost+found/</command></userinput></screen> 28 28 29 30 <para> 31 Now that we have a file mounted and usable, let's prepare it to be 29 <para>Now that we have a file mounted and usable, let's prepare it to be 32 30 filled with useful material. Since this is only a rescue floppy we'll 33 31 only need to set up the minimum directories.</para> 34 <para><screen><userinput>mkdir /mnt/loop1/{dev,proc,etc,sbin,bin,lib,mnt,usr,var}</userinput></screen></para> 32 33 <screen><userinput><command>mkdir /mnt/loop1/{dev,proc,etc,sbin,bin,lib,mnt,usr,var}</command></userinput></screen> 34 35 35 <para>Next, we will set up the device files. I use devfs on my system, so 36 36 the following command works well, as I only have the devices I use 37 anyway. If you used MAKEDEV to create your devices, you'll want to 38 trim the <filename>/mnt/loop1/dev</filename> directory to reclaim the inode space wasted 39 by the devices you don't use in the <filename>dev</filename> directory.</para> 40 <para><screen><userinput>cp -dpR /dev/* /mnt/loop1/dev</userinput></screen></para> 41 <para>Now to tend to the <filename>/etc</filename> directory. To start, all we will do is use 42 the passwd and group file that worked for our static chroot environment 43 when we built LFS. We'll also copy the startup scripts over and a few other files 44 that serve well as starting points.</para> 45 <para><screen><userinput>cp -ax /etc/rc* /mnt/loop1/etc 37 anyway. If you used <command>MAKEDEV</command> to create your devices, you'll 38 want to trim the <filename>/mnt/loop1/dev</filename> directory to reclaim the 39 inode space wasted by the devices you don't use in the <filename>dev</filename> 40 directory.</para> 41 42 <screen><userinput><command>cp -dpR /dev/* /mnt/loop1/dev</command></userinput></screen> 43 44 <para>Now to tend to the <filename>/etc</filename> directory. To start, all we 45 will do is use the passwd and group file that worked for our static chroot 46 environment when we built <acronym>LFS</acronym>. We'll also copy the startup scripts over and a 47 few other files that serve well as starting points.</para> 48 49 <screen><userinput><command>cp -ax /etc/rc* /mnt/loop1/etc 46 50 cp -ax /etc/fstab /mnt/loop1/etc 47 51 echo "root:x:0:0:root:/root:/bin/bash" > /mnt/loop1/etc/passwd 48 cat > /mnt/loop1/etc/group << "EOF" 52 cat > /mnt/loop1/etc/group << "EOF"</command> 49 53 root:x:0: 50 54 bin:x:1: … … 59 63 dialout:x:10: 60 64 audio:x:11: 61 EOF</userinput></screen> 62 </para> 63 <para> 65 <command>EOF</command></userinput></screen> 64 66 65 To prevent automatic mounting of hard drive partitions,66 make sure to add the noauto option in their fstab entry. Also, addthe67 following entries to the<filename>/mnt/loop1/etc/fstab</filename> to assist with mounting our67 <para>To prevent automatic mounting of hard drive partitions, make sure to add 68 the noauto option in their fstab entry. Also, add the following entries to the 69 <filename>/mnt/loop1/etc/fstab</filename> to assist with mounting our 68 70 floppy and the ram image</para> 69 <para><screen>/dev/ram0 / ext2 defaults 70 /dev/fd0 / ext2 defaults</screen></para> 71 72 <screen><userinput>/dev/ram0 / ext2 defaults 73 /dev/fd0 / ext2 defaults</userinput></screen> 71 74 72 75 <para>Next, we will install <ulink 73 76 url="http://www.busybox.net/downloads/busybox-0.60.4.tar.bz2">busybox</ulink> 74 onto the image. Busybox incorporates many of the unix functions into a single small executable file.</para> 75 <screen><userinput>make && 77 onto the image. Busybox incorporates many of the unix functions into a single 78 small executable file.</para> 79 80 <screen><userinput><command>make && 76 81 make PREFIX=/mnt/loop1 install && 77 82 cp -ax /var/utmp /mnt/loop1/var && 78 mkdir /mnt/loop1/var/log</userinput></screen> 79 <para> 80 Also, keeping in mind your space limitations, copy any other binaries and libraries you 81 need to the image. Use the <userinput>ldd</userinput> command to 82 see which libraries you will need to copy over for any executables. 83 </para> 84 <para> 85 Now, since I use devfs to create devices on the fly and free up precious 83 mkdir /mnt/loop1/var/log</command></userinput></screen> 84 85 <para>Also, keeping in mind your space limitations, copy any other binaries and 86 libraries you need to the image. Use the <userinput>ldd</userinput> command to 87 see which libraries you will need to copy over for any executables.</para> 88 89 <para>Now, since I use devfs to create devices on the fly and free up precious 86 90 inodes on the floppy, we'll also install devfsd to facilitate the 87 91 devices that busybox expects to find.</para> 88 92 89 <screen><userinput> mv GNUmakefile Makefile &&93 <screen><userinput><command>mv GNUmakefile Makefile && 90 94 make && 91 95 make PREFIX=/mnt/loop1 install && 92 96 cp /lib/libc.so.6 /lib/ld-linux.so.2 /lib/libdl.so.2 /tmp && 93 97 strip --strip-deb /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libdl.so.2 && 94 mv /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libdl.so.2 /mnt/loop1/lib/</ userinput></screen>95 <para> 96 We will also need to set up an rc script to handle the devfsd startup.98 mv /tmp/ld-linux.so.2 /tmp/libc.so.6 /tmp/libdl.so.2 /mnt/loop1/lib/</command></userinput></screen> 99 100 <para>We will also need to set up an rc script to handle the devfsd startup. 97 101 Put this in <filename>/mnt/loop1/etc/init.d/rcS</filename>.</para> 98 <screen>#!/bin/sh 102 103 <screen><userinput>#!/bin/sh 99 104 mount -t devfs devfs /dev 100 /sbin/devfsd /dev</ screen>105 /sbin/devfsd /dev</userinput></screen> 101 106 102 <para> 103 Next create your compressed root filesystem. We use -9 with gzip to 107 <para>Next create your compressed root filesystem. We use -9 with gzip to 104 108 make the smallest possible compressed image.</para> 105 <screen><userinput>umount /mnt/loop1 && dd if=/tmp/rfloppy bs=1k | gzip -v9 > rootfs.gz</userinput></screen> 106 <screen><userinput>ls -l rootfs.gz</userinput> to make sure it will fit on the diskette.</screen> 107 <para> 108 Make a custom kernel that is optimized for size. Include only those features 109 you will need to rescue your system. no sense in building in support for things 110 like xfree86 dri, etc, as most rescues are performed from the command prompt. 111 </para> 112 <screen><userinput>dd if=rescueimg of=/dev/floppy/0 bs=1k</userinput> 109 110 <screen><userinput><command>umount /mnt/loop1 && dd if=/tmp/rfloppy bs=1k | gzip -v9 > rootfs.gz</command></userinput></screen> 111 112 <para><userinput><command>ls -l rootfs.gz</command></userinput> to make 113 sure it will fit on the diskette.</para> 114 115 <para>Make a custom kernel that is optimized for size. Include only those 116 features you will need to rescue your system. no sense in building in support 117 for things like xfree86 dri, etc, as most rescues are performed from the 118 command prompt.</para> 119 120 <screen><userinput><command>dd if=rescueimg of=/dev/floppy/0bs=1k</command> 113 121 429+1 records in 114 122 429+1 records out 115 <userinput>rdev /dev/floppy/0 /dev/floppy/0</userinput> 116 <userinput>rdev -R /dev/floppy/0 0</userinput> 117 </screen> 123 <command>rdev /dev/floppy/0 /dev/floppy/0 124 rdev -R /dev/floppy/0 0</command></userinput></screen> 118 125 119 <para>In this example the rescueimage (KERNEL) was 429+1 blocks in size.126 <para>In this example the rescueimage (KERNEL) was 429+1 blocks in size. 120 127 We will remember this for the next command. We now write the root file 121 128 system right after the kernel on the floppy by doing 16384+429+1= 122 129 16814.</para> 123 <screen><userinput>rdev -r /dev/floppy/0 16814</userinput></screen>124 130 131 <screen><userinput><command>rdev -r /dev/floppy/0 16814 132 dd if=rootfs.gz of=/dev/floppy/0 bs=1k seek=430</command></userinput></screen> 125 133 126 <screen><userinput>dd if=rootfs.gz of=/dev/floppy/0 bs=1k seek=430</userinput></screen> 127 <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. 128 </para> 134 <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.</para> 129 135 </sect1>
Note:
See TracChangeset
for help on using the changeset viewer.