[TriLUG] Multiboot CD Question

Roy Vestal rvestal at trilug.org
Mon Mar 22 09:46:45 EDT 2010


So none of these suggesteions did what I was looking, as I needed a CD 
not an ISO. I was able to figure it out, with some more googling, and 
here are the simple steps. I am going to write this up a little more and 
submit it to CentOS as well as post it on my site too.

The basic need: I have almost 50 servers in my lab that I need to test 
several variables and gather information on. Different manufacturers and 
such.

I used the CentOS LiveCD howto and minimal kickstart for the LiveCD. I 
added 'dmidecode' and 'pciutils' to the kickstart packages. I also 
created a post install to add "prtdiag" script to the disk. I had to 
modify the prtdiag a little to get it to do what I wanted. Here are the 
links:

https://projects.centos.org/trac/livecd/
http://people.redhat.com/tcallawa/prtdiag/

Hope this helps someone.

------------begin quick howto--------------

Goal: Creating a Multiboot disk with 2 versions of CentOS based OS's.

I had 2 versions of CentOS LiveCD's that I had created I wanted on one 
CD, one 32 bit, the other 64 bit. Here are the steps I went through to 
make this happen. I will only show the 64bit version here. You have to 
repeat for the 32bit version substituting the appropriate names.

1. Created a working folder: mkdir ~/bootdisk

2. Created a working folder structure: mkdir -p ~/bootdisk/64bit 
~/bootdisk/32bit

3. copied the files from the CentOS LiveCD ./LiveOS folder to the 
appropriate ~/bootdisk folder: cp /media/CentOS-min-64/LiveOS* 
~/bootdisk/64bit

4. Copied and renamed each kernel and ignited from each CentOS LiveCD 
./isolinux folder to ~/bootdisk:  cp 
/media/CentOS-min-64/isolinux/vmlinuz0 ~/bootdisk/vmlinuz64 and cp 
/media/CentOS-min-32/isolinuxinitrd0.img ~bootdisk/initrd64.img

5. Had to unpack the initrd files to  edit the /sbin/init file in the  
to reflect the new path to the osmin.img and the squashfs.img
   5a. created ~/bootdisk/temp mkdir ~/bootdisk/temp
   5b. cd ~/bootdisk/temp
   5c. renamed initrd64.img vm ../initrd64.img ../initrd64.gz
   5d. unzipped it  unzip ../initrd64.gz
   5e. unpacked it cpio -id < ../initrd64

6. Edited the /sbin/init file. Changed all references to "LiveOS" to  
the appropriate folder name (64bit or32bit)  with the EXCEPTION of 
"/squashfs/LiveOS/ext3fs.img".

7. repack the initrd image.
   7a. cd ~/bootdisk/temp
   7b. find . | cpio --create --format='new' > ../initrd64.img
   7c. cd ..
   7d. mv initrd64.img initrd64
   7e. gzip initrd64

8. Copied isolinux.cfg file in root of ~/bootdisk cp. 
/media/CentOS-min-64/isolinux/isolinux.cfg ~/bootdisk

9. Edited isolinux.cfg file to reflect the changes to my new CD, 
specifically the label, kernel, and append lines for each iso added. I 
also added the default to be boot local disk.
    9a. edited label 1 for 64bit
     i. set label to "menu label Boot 64bit" (without quotes)
     ii. set kernel line to "kernel vmlinuz64" (without quotes)
     iii. changed append line to reflect changes and the new label i was 
going to give to the CD: "append initrd=initrd64.img root=CDLABE=TestCD 
rootfstype=iso9660 ro liveimg" (without quotes)
    9b. I also remarked out "menu hidden" so the menu would appear.

10. Copied needed files from CD so isolinux would boot the disk and the 
iso will build correctly:
    10a. c.p. /media/CentOS-min-64/isolinux/isolinux.bin ~bootdisk
    10b. c.p. /media/CentOS-min-64/isolinux/boot.cat ~bootdisk
    10c. c.p. /media/CentOS-min-64/isolinux/splash.jpg ~bootdisk
    10d. c.p. /media/CentOS-min-64/isolinux/vesamenu.c32 ~bootdisk

11. Removed ~/bootdisk/temp folder

12. cd ~

13. Created CD with mkisofs: mkisofs -V "TestCD" -o testcd.iso -b 
isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 
-boot-info-table newboot

------------end quick howto--------------

-Roy

On 3/19/10 8:46 AM, Roy Vestal wrote:
> I'll check into it.
>
> I am using VirtualBox to build the CDs as well as test them.
>
> As for the end result, I am testing physical systems so I need the CD. 
> Some do not boot USB.
>
> On 3/18/10 6:04 PM, Cristóbal Palmer wrote:
>> On Thu, Mar 18, 2010 at 1:56 PM, Roy Vestal<rvestal at trilug.org>  wrote:
>>> I have built 2 different CentOS live CD's for testing in our lab. As 
>>> both
>>> CD's are 150MB uncompressed, I can easily fit them on one CD. I'm 
>>> trying to
>>> figure out how to make a single multiboot CD from 2 seperate CentOS
>>> LiveCD's.
>> Googling for "usb multiboot linux" without the quotes got me this:
>>
>> http://www.mepis.org/docs/en/index.php/Create_a_multiboot_CD_(or_USB_flash_drive) 
>>
>>
>> Which looks like it's most of what you need. Let us know if that
>> works? Two suggestions from personal experience: (1) booting from USB
>> may be marginally more effort, but is worth that effort to make the
>> bootable USB image and learn to use it. (2) VirtualBox is a lovely
>> thing for testing stuff like this, but use whatever flavor of
>> virtualization that you find most tasty.
>>
>> Cheers,
>
> -- 
> TriLUG mailing list : http://www.trilug.org/mailman/listinfo/trilug
> TriLUG FAQ          : 
> http://www.trilug.org/wiki/Frequently_Asked_Questions




More information about the TriLUG mailing list