User:Ml


From Knoppix Documentation Wiki
Revision as of 20:46, 18 September 2007 by DbqYxm (Talk | contribs)

Jump to: navigation, search

i worked on a customized knoppix cd, based on knoppix 4.0.2. I'm posting my changes here in case they might be of use to others.


grub gfx boot

i wanted the cd to boot using grub instead of isolinux (can be used for repairs/diagnostics). morphix and kanotix are both using a cute graphic grub menu, which gives easy access to various knoppix cheatcodes, documentation etc. This one's based on morphix, with slight ui changes (added dvorak keyboard layout, kept only french and english languages, updated doc and menus)

http://matthieu.lucotte.free.fr/myknoppix/gfxboot/grub_gfx_sml.png To try the bootloader in qemu, download gfxboot.iso.bz2, extract it and run
qemu -cdrom gfxboot.iso

grub files need to be setup under boot/grub on the knoppix cd.

note: remember to make final iso image with :

mkisofs -pad -l -f -r -J -V "MYKNOPPIX" -b boot/grub/iso9660_stage1_5 -c boot/grub/boot.cat -o
../myknoppix.iso -no-emul-boot -boot-load-size 1 -boot-info-table  knoppix_iso_directory

boot/grub/message is a cpio archive which controls the ui. to recreate it you need the tools from gfxboot_2.4.orig.tar.gz.

Then you can use gfxboot-grub-0.1_my.tgz to recreate message (based on morphix-iso-grubtheme_0.1-2.tar.gz)

dev setup

i wanted an easy way to test the remastered version from hd without having to reboot or create an iso each time, so i had another machine boot from the network just like knoppix terminal server, except with the current state of my remastered version.

i got tired of having 2 different miniroots (one for the cd, one for netboot) so i merged the 2 together (of course, the actual netboot miniroot still needs the right network modules added to it to work, but that's the only difference)

Also, knoppix terminal server still required a KNOPPIX cloop file, which i didn't want to create each time, so i added a "nocloop" cheatcode to use the raw files instead.

There are issues when using nfs unionfs directly (which normally don't occur in knoppix terminal server since it's nfs cloop unionfs - note: "nfsro" unionfs mount option seems to fix it, but shouldn't be needed), so i ended up putting the remastered files in an ext2 filesystem in a loop file (knoppix_loop) and accessing that from the diskless client.

note: the netboot client still uses pxelinux - grub's network stuff didn't work for me

Example setup

for reference, here's my setup using nbd (nfs would work fine as well)

  • /etc/dhcp3/dhcpd.conf (the etherboot image didn't work for me, fortunately etherboot supports pxe as well, so it works with both pxe and etherboot clients)
# dhcpd.conf for KNOPPIX terminalserver

# global settings
allow booting;
allow bootp;
default-lease-time 600;
max-lease-time 7200;

subnet 10.0.0.0 netmask 255.0.0.0 {
  next-server 10.0.0.101;
#  if substring (option vendor-class-identifier, 0, 9) = "Etherboot" { filename "etherboot.nbi"; }
#  else { filename "pxelinux.0"; }
  filename "pxelinux.0";
  option subnet-mask 255.0.0.0;
  range 10.0.0.201 10.0.0.250;
  option domain-name-servers  10.0.0.138;
  option routers  10.0.0.138;
}
  • /etc/nbd-server
NBD_PORT[0]=1234
NBD_FILE[0]=/mnt/space/samba/share/isos/knoppix_loop
NBD_SERVER_OPTS[0]=-r
  • add to /etc/inetd.conf
tftp            dgram   udp     wait    root    /usr/sbin/in.tftpd      in.tftpd -v -s /tftpboot
  • tftpboot/pxelinux.cfg/default:
DEFAULT vmlinuz
APPEND nocloop nbdhost=10.0.0.101 nbdport=1234 nodhcp lang=us ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=791 initrd=miniroot.gz quiet BOOT_IMAGE=knoppix keyboard=dvorak xkeyboard=dvorak
TIMEOUT 300

PROMPT 1
DISPLAY boot.msg
LABEL knoppix
KERNEL vmlinuz
APPEND nocloop nbdhost=10.0.0.101 nbdport=1234 nodhcp lang=us ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=791 initrd=miniroot.gz quiet BOOT_IMAGE=knoppix keyboard=dvorak xkeyboard=dvorak
LABEL normal
KERNEL vmlinuz
APPEND nocloop nbdhost=10.0.0.101 nbdport=1234 nodhcp lang=us ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=791 initrd=miniroot.gz quiet BOOT_IMAGE=knoppix
LABEL debug
KERNEL vmlinuz
APPEND nocloop nbdhost=10.0.0.101 nbdport=1234 nodhcp lang=us ramdisk_size=100000 init=/etc/init apm=power-off vga=normal initrd=miniroot.gz debug BOOT_IMAGE=debug keyboard=dvorak xkeyboard=dvorak
LABEL knoppix-txt
KERNEL vmlinuz
APPEND nocloop nbdhost=10.0.0.101 nbdport=1234 nodhcp lang=us ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=normal initrd=miniroot.gz BOOT_IMAGE=knoppix keyboard=dvorak xkeyboard=dvorak
LABEL expert
KERNEL vmlinuz
APPEND nocloop nbdhost=10.0.0.101 nbdport=1234 nodhcp lang=us ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=791 BOOT_IMAGE=expert initrd=miniroot.gz keyboard=dvorak xkeyboard=dvorak
LABEL fb1024x768
KERNEL vmlinuz
APPEND nocloop nbdhost=10.0.0.101 nbdport=1234 nodhcp lang=us ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=791 xmodule=fbdev initrd=miniroot.gz BOOT_IMAGE=knoppix keyboard=dvorak xkeyboard=dvorak
LABEL fb800x600
KERNEL vmlinuz
APPEND nocloop nbdhost=10.0.0.101 nbdport=1234 nodhcp lang=us ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=788 xmodule=fbdev initrd=miniroot.gz BOOT_IMAGE=knoppix keyboard=dvorak xkeyboard=dvorak
  • note: make sure you have the right network drivers inside miniroot.gz and the ips above are correct.

miniroot changes

i also wanted a way to boot from an iso image on the hd, without needing the physical cd at all (i have a notebook without cd drive, hence "bootfrom" cheatcode wouldn't work there). so i added a "fromiso" cheatcode, and direct support for reiserfs, ntfs and ext3 (i don't mind having a bigger miniroot)

lastly i merged changes from accelerated knoppix, see next section for that.

download new miniroot: miniroot.gz

linuxrc: new original diffs

warning: /home lives in unionfs in my version, not in ramdisk as in knoppix 4.0.2 (ie /home/knoppix already exists in the cloop image). If you don't want that, you should undo these diffs in linuxrc:

-mkdir -p /ramdisk/tmp /ramdisk/home/knoppix