BootUSB - gdamjan/gdamjan.github.io GitHub Wiki

Знам дека постојат алатки кои го прават истото, но оваа е за тие што сакаат да знаат повеќе. Плус со овој метод не мора да го бришеш usb-то.

Идејата е од .iso image на Ubuntu да се добие boot-абилно USB стикче. Па да почнеме (во примерите ќе користам /dev/sdc како USB device]:

Прво ги mount-ираме .iso-то и USB-то

modprobe loop
mount -o loop $HOME/Downloads/ubuntu-9.10-desktop-i386.iso /mnt/cd

mount /dev/sdc1 /mnt/usb

Потоа ја копираме целата содржина од .iso-то на USB-то, јас ќе употребам rsync, но и обичен cp е доволен ако пазите да го ископирате скриениот .disk директориум.

cd /mnt/cd
rsync -av . /mnt/usb/

Следи инсталација на boot loader-от. Бидејќи USB-то користи FAT32 фајлсистем ќе употребиме syslinux boot loader. Тоа е пандан на isolinux кој се користи за boot-абилните CD-а (името доаѓа од iso9660, тоа е фајлсистемот кој се користи за CD-а и сл).

cd /mnt/usb/
mv isolinux/ syslinux/
mv syslinux/isolinux.cfg syslinux/syslinux.cfg
syslinux -d syslinux /dev/sdc1

Со тоа, syslinux boot loader-от е инсталиран на првата партиција (sdc1) на USB-то. Останува само последниот чекор, а тоа е инсталирање на Master Boot Record на самото USB (а не во партицијата). За тоа ќе го искористиме стандардното MBR кое доаѓа со syslinux:

dd if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdc

Напомена: важно е да се примети разликата, во горните команди syslinux се инсталира во партицијата (на sdc1), но mbr-то се инсталира директно на дискот (на sdc).

И толку.. овој метод е пробан на ubuntu-9.04, 9.10, 10.x, 11.x, 12.04. Треба да работи со сите понови ubuntu-а (но можеби не на 8.10).

EXT4

За напредните корисници: доколку сакаме USB стикчето да го форматираме како EXT4 фајлсистем (а не FAT32 кој има многу ограничувања), процедурата е слична како погоре, со тоа што:

  • config фајлот нема да биде syslinux/syslinux.cfg туку syslinux/extlinux.conf
  • командата е extlinux -i /mnt/usb/syslinux додека е mount-ирано usb-то

За USBиња е препорачано да се форматираат како EXT4 без journal, со командата:

mkfs.ext4 -O ^has_journal /dev/sdc1
⚠️ **GitHub.com Fallback** ⚠️