User Tools

Site Tools


multiboot_usb_key

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
multiboot_usb_key [2011/11/01 15:29] – zDUtPzlQI 94.76.244.212multiboot_usb_key [2021/02/01 05:55] (current) – external edit 127.0.0.1
Line 1: Line 1:
-xGWJvB  <href="http://zhslpetkcpng.com/">zhslpetkcpng</a>+====== Multiboot usb key with 32 and 64bits debian installers and debian live ====== 
 + 
 +===== Preparing the usb key ===== 
 + 
 +  * Create partition table and make a fat32 partition that uses the whole usb key space. 
 + 
 +  cfdisk /dev/sdb 
 +  mkfs.vfat /dev/sdb1 
 + 
 +  * Install grub on the usb key 
 + 
 +  mount /dev/sdb1 /media/usb0 
 +  grub-install --no-floppy --root-directory=/media/usb0 /dev/sdb 
 + 
 +  * Create a grub.cfg file in /media/usb0/boot/grub/ with the following contents: 
 + 
 +  menuentry "debian-installer-i386"
 +    linux /boot/vmlinuz_i386 vga=788 -- quiet 
 +    initrd /boot/initrd_i386.gz 
 +  } 
 +   
 +  menuentry "debian-installer-i386 expert"
 +    linux /boot/vmlinuz_i386 priority=low vga=788 -- 
 +    initrd /boot/initrd_i386.gz 
 +  }  
 +   
 +  menuentry "debian-installer-amd64"
 +    linux /boot/vmlinuz_amd64 vga=788 -- quiet 
 +    initrd /boot/initrd_amd64.gz 
 +  }  
 +   
 +  menuentry "debian-installer-amd64 expert"
 +    linux /boot/vmlinuz_amd64 priority=low vga=788 -- 
 +    initrd /boot/initrd_amd64.gz 
 +  } 
 +   
 +  menuentry "live amd64" { 
 +    linux /boot/live_amd64/vmlinuz boot=live live-media-path=/boot/live_amd64 persistent-path=/persistent/amd64/ live-config persistent 
 +    initrd /boot/live_amd64/initrd.img 
 +  } 
 +   
 +  menuentry "live i386" { 
 +    linux /boot/live_i386/vmlinuz boot=live live-media-path=/boot/live_i386 persistent-path=/persistent/i386/ live-config persistent 
 +    initrd /boot/live_i386/initrd.img 
 +  } 
 + 
 +===== Debian installer ===== 
 + 
 +  * Get the hd-usb debian installer vmlinuz and initrd.gz files from the web. Rename them to vmlinuz_$arch and initrd_$arch.gz, where $arch is the computer architecture (i386, amd64). Copy them to /media/usb0/boot. 
 +  * Get the corresponding netinstall iso files for the installed architectures and copy them to /media/usb0 
 + 
 +===== Debian live ===== 
 + 
 +  * Create some necessary directories: 
 + 
 +  mkdir /media/usb0/persistent 
 +  mkdir /media/usb0/persistent/amd64 
 +  mkdir /media/usb0/persistent/i386 
 +  mkdir /media/usb0/boot/live_amd64 
 +  mkdir /media/usb0/boot/live_i386 
 + 
 +==== Generate the debian live image ==== 
 + 
 +  * Install live-helper package 
 +  * Create live image (do this from a 64bit machine): 
 + 
 +  mkdir /tmp/d-l 
 +  mkdir /tmp/d-l/amd64 
 +  cd /tmp/d-l/amd64 
 +  sudo lh clean --binary 
 +  sudo lh config -b usb-hdd -a amd64 -d sid 
 +  sudo lh build 
 + 
 +  * When the build is finished edit the file chroot/sbin/live-snapshot  
 +  * Replace the line: 
 + 
 +  SNAP_COW=$(echo "${SNAP_RESYNC_STRING}" | sed -e 's|^/root\([^:.]*\).*$|'"${DEF_SNAP_COW}"'\1|'
 + 
 +  * With: 
 + 
 +  SNAP_COW=$(echo "${SNAP_RESYNC_STRING}" | sed -e 's|^/cow\([^:.]*\).*$|'"${DEF_SNAP_COW}"'\1|'
 + 
 +  * Regenerate the live image: 
 + 
 +  sudo lh clean --binary 
 +  sudo lh binary 
 + 
 +  * Loop mount the generated live image, copy the important parts to the usb key, and extract the initrd contents:   
 + 
 +  mount -o loop,offset=512 binary.img /mnt 
 +  cd /mnt/live 
 +  cp * /media/usb0/boot/live_amd64 
 +  mkdir /tmp/initrd_amd64 
 +  cp /mnt/live/initrd.img /tmp/initrd_amd64/initrd.img.gz 
 +  cd /tmp/initrd_amd64 
 +  gunzip initrd.img.gz 
 +  cpio -ivmd -F initrd.img 
 +  rm initrd.img 
 + 
 +  * Edit the file scripts/live 
 +  * Replace line: 
 + 
 +  ${snap_type}SNAP="/cow${snap_mount#$rootmnt}":${snapdev}:${snapfile}" >/etc/live.conf # for resync on reboot/halt 
 + 
 +  * With: 
 + 
 +  ${snap_type}SNAP="/cow${snap_mount#$rootmnt}":${snapdev}:${snapfile}" >> ${rootmnt}/etc/live.conf # for resync on reboot/halt 
 + 
 +  * And replace line: 
 + 
 +  snapdata=$(find_files "${PERSISTENT_PATH}${snap_label}.squashfs  ${PERSISTENT_PATH}${snap_label}.cpio.gz ${PERSISTENT_PATH}${snap_label}.ext2  ${PERSISTENT_PATH}${snap_label}.ext3 ${PERSISTENT_PATH}${snap_label}.ext4 ${PERSISTENT_PATH}${snap_label}.jffs2"
 + 
 +  * With: 
 + 
 +  snapdata=$(find_files "${PERSISTENT_PATH}/${snap_label}.squashfs  ${PERSISTENT_PATH}/${snap_label}.cpio.gz ${PERSISTENT_PATH}/${snap_label}.ext2  ${PERSISTENT_PATH}/${snap_label}.ext3 ${PERSISTENT_PATH}/${snap_label}.ext4 ${PERSISTENT_PATH}/${snap_label}.jffs2"
 + 
 +  * Recreate initrd.img file, and copy it to the usb key: 
 + 
 +  find .| cpio -o -H newc | gzip -9 > ../initrd.img 
 +  cp ../initrd.img /media/usb0/boot/live_amd64 
 + 
 +  * Repeat the whole procedure for the 32bits case, just use i386 where amd64 is. 
 + 
 +===== Debian Live (February 2013) ===== 
 + 
 +  mkdir /tmp/live_amd64 
 +  cd /tmp/live_amd64 
 +  lb config -a amd64 -d sid --mirror-bootstrap http://mirrors.ucr.ac.cr/debian/ --mirror-binary http://mirrors.ucr.ac.cr/debian/ --archive-areas "main contrib non-free" 
 + 
 +In directory config/package-lists, create file called base.list and add the following to it: 
 + 
 +  lvm2 
 +  testdisk 
 +  dmsetup 
 +  cryptsetup 
 +  cryptmount 
 +  gdisk 
 +  emacs 
 +  mc 
 +  joe 
 +  gddrescue 
 +  magicrescue 
 +  wipe 
 +  ntfs-3g 
 +  partimage 
 +  sshfs 
 +  firmware-linux-nonfree 
 +  firmware-linux 
 + 
multiboot_usb_key.1320161390.txt.gz · Last modified: 2021/02/01 05:55 (external edit)