USB media has become widely popular. They come in various formats and have enough capacity to hold a SuSE Linux DVD ISO-image.
Also a lot of PCs can boot from USB, so quite soon you’ll find yourself asking: Wouldn’t it be nice to just download the image and boot from USB drive. Actually, an USB drive is not bootable by itself as special boot files are required. However, the drive can be made bootable quite easily.
For a successful install, you should have:
- SuSE Linux DVD image for i386 or x86_64 architecture, alternatively a Start-CD-Image can be used. This is much smaller and will fit on (almost) any USB drive
- this modified version of [mkbootdisk]
- an usb key (mini disk is ~80kb, cd 650Mb, dvd 4Gb, key must have the corresponding size) or USB hard drive
- root access to already installed Linux, and ability to work in a console
- syslinux installed (use YaST)
- Open a root xterm or terminal;
- Plug in the USB drive. The drive should mount automatically – if you use KDE, you can find out which device name is used for the USB drive, by reading it from the window that opens automatically. The partition has a name such as “dev/sdb1”. The disk is the device without the trailing digit, e.g., /dev/sdb.
You can also use
and look for a device that matches the size of your USB drive.
Another way to find out the device name is to look at the last couple of lines in the file “/var/log/messages”. When the USB drive is plugged in, several lines starting appear which indicate that the USB drive has been connected. Look for a line saying “[sd?] Attached SCSI disk”. Here “sd?” is the device name of your USB drive.
- Check the partition as root type via:
or, if you know the disk
fdisk -l /dev/<disk>
The output should have line like
/dev/sdb1 * 1 3924 1004528 c W95 FAT32 (LBA)
Here “FAT32” indicates the filesystem. It could also be “FAT16” (or something else). If you see a star (as in the example above), then this means that the bootable flag is set.
- If the bootable flag is not set (no star), it needs to be set as follows:
(<disk> is the disk name, e.g. “sdb”. It’s not the partion name as “sdb1”). Then press “a”, and enter the partition number (e.g. 1, if the partition is sdb1). Save the changes with “w”. If the automount prevents the changes from being saved, you can temporarily disable automount using “rcdbus stop” as root.
- If the filesystem is not FAT32, it needs to be changed:
Then press “t” (to change the partition type) and “c” (for FAT32). Save the changes with “w”.
- Create the filesystem (beware, this erases all data on the USB drive). To do so you must first unmount the drive:
umount /dev/<partition> mkfs.vfat -F 32 /dev/<partition>
(Here <partition> is the partition, for example “sdb1”).
- Make sure that the USB drive is FAT32 formatted:
If this fails, fix the filesystem with
fsck.vfat -a /dev/<partition>
Copy files to the USB drive
- Choose a suitable mount point for the dvd (for example /mnt/dvd) and a mount point for the USB drive (for example /mnt/usb). Create the mount points with
mkdir /mnt/dvd mkdir /mnt/usb
- Mount the downloaded CD/DVD image (make sure you have loop-device support in your Linux – in openSUSE this is available by default):
mount dvd.iso /mnt/dvd -o loop
Also mount the USB drive:
mount /dev/sdb1 /mnt/usb
- Copy the downloaded CD/DVD data to the USB drive at the root of the drive
cp -R -L /mnt/dvd/* /mnt/usb/
- Unmount the USB drive (if not, the command mksusebootdisk will fail)
Make the USB drive bootable
See 2nd comment in Discussion-tab if the mksusebootdisk script program does not finish. !!!!!!
(Note: to run mksusebootdisk, package “syslinux” have to be installed)
- to make media for x86 (i386) the command is:
./mksusebootdisk --32 --partition /dev/sdb1 /mnt/dvd
- to make media for x86-64 (AMD64/EMT64) the command is:
./mksusebootdisk --64 --partition /dev/sdb1 /mnt/dvd
This should work for any architecture e.g. ppc, IA64 by changing the first parameter etc.
- If you get the error
/usr/bin/perl: bad interpreter: Permission denied
make the “mksusebootdisk” script executable by running
chmod +x mksusebootdisk
This command works reasonably fast. It will fail if you forgot to unmount (using umount) the USB disk. It will also fail (and give a “not a FAT file system” error if you press crtl-c) if the drive has errors. To fix the errors, use
fsck.vfat -w -r <part>
- The drive is now bootable.
Make sure your USB-device is plugged in. Boot the PC. If everything goes well the SuSE boot menu will appear. Choose install.
During setup, the install media will not be automatically found. The setup will fall back to text-mode setup where you can choose the install media location.
Your media should be in Local hard drive and USB drive should be /dev/sda1 or similar. The setup will ask for the ISO file location on the selected drive. Type in the file path and name. Initial / is required, so if your image is at the root of the drive and has name of dvd.iso, you need to type: /dvd.iso
Why cannot I just use the mkbootdisk shipped with SuSE Linux
- The stock mkbootdisk is not capable of writing a FAT32 filesystem.
- Biggest standard/bootable FAT16 partition is 2 gigabytes. That won’t hold the DVD image.
- You could create a non-standard FAT16 of 4 gigabytes, but you won’t be able to boot from it. At least most motherboards won’t.
The PC won’t boot from USB drive
If no matter what you try, the machine does not boot from the USB drive:
- Make sure the PC is capable of booting from USB. This information may be difficult to find from manuals or Internet, sometimes USB booting is not supported regardless how new the PC is.
- Note: removable drive in the BIOS boot menu does not mean USB
- BIOS setup should have the plugged in USB device in high enough boot priority, make sure that PC won’t boot from hard drive or CD.
- Some motherboards may have additional restrictions. For example, some Via EPIA mini-itx boards require that the boot partition is no larger than 8MB.
- Try consulting and/or contributing to the USB Booting Knowledge Base
Links for additional information
- openSUSE download page
- Loop device article on Wikipedia
- Recommendations for Booting Windows from USB Storage Devices
- How to make live USB from windows for opensuse 11.0 Beta 2
Retrieved from “http://en.opensuse.org/SuSE_install_from_USB_drive“