SuSE install from USB drive

From openSUSE

This article has been reviewed!
The content complies with community quality guidelines and is based on the approved Wiki Style Guidelines. Do not make major edit until it has been moved to the new wiki by the 'administrators'. Last changed: 19:34, 9 February 2010 (UTC)
Documentation:
Installation - Package management - Configuration - Hardware - HOWTOs - Users_FAQ


Geeko 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.

Warning
If you want to create a Live USB from openSUSE 11.2 live CD/DVD images, use article Live USB stick - since this complicated procedure is no longer needed. If you want to create a (Network) Install USB stick, you are at the right page.




Actually, an USB drive is not bootable by itself as special boot files are required. However, the drive can be made bootable quite easily.

Contents

Getting ready

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] (add option -n to the line "for (`fsck.vfat -v $part 2>/dev/null`) {")
  • 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)

Preparation

  • 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

 lsscsi

and look for a device that matches your USB drive.

  • Check the partition as root type via:
fdisk -l

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:
fdisk /dev/<disk> 

(<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:
fdisk /dev/<disk>

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:
fsck.vfat /dev/<partition>

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)
umount /mnt/usb

Make the USB drive bootable

See 2nd comment in Discussion-tab if the mksusebootdisk script program does not finish. !!!!!!

Make sure the script is executable:

chmod +x mksusebootdisk

Install syslinux if it isn't already:

zypper install syslinux

Run the script with arch set to 32 for i386, or 64 for x86_64. This should work for any architecture e.g. ppc, IA64.

./mksusebootdisk --arch --partition /dev/<partition> /mnt/dvd

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 /dev/<partition>

Installation

Boot

  • Make sure the USB device is plugged in.
  • Boot the PC with USB device as the primary boot device or in the first boot order.
This is entirely depends on your BIOS menu and configurations. If everything goes well the openSUSE boot menu will appear.
  • From the boot menu, choose "Installation" to install a new openSUSE system.

Setup

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

Gotchas / Common issues

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