SuSE 9.1 and SuSE 10.0 USB Stick survival guide




The SuSE 10.0 release is excellent but it has a very slow access to USB disks (wether flash sticks or hard disks) and it seems it slowly destroys flash sticks. You will find the solution here: https://bugzilla.novell.com/show_bug.cgi?id=105871#c113 . If you have problems to apply this solution please mail me. The rest of this page is about the SuSE 9.1 release.


SuSE 9.1 is a dream release. Except for the flash RAM USB sticks behavior. It's simply bad. This HowTo should help. (A friendly reader reports it helped him for SuSE 9.2 too.)

Problems I got were these:
  1. If the stick was already inserted when the computer starts, it won't be available in the "My Computer" window.

  2. I had to unplug and replug the stick many times till it got recognized and available. When it was recognized the stick's light immediately got blinking for a second. If it wasn't recognized, either the light would stay off or stay on (then I had to unplug and replug).

  3. After a few unplugging and replugging the USB stick read system got stuck. I could even not kill the processes and retry. I simply had to restart the computer!

  4. Some sticks simply weren't accessible. whatever unplugging and replugging nothing would help.

  5. When accessing files in the stick, the whole system crashes.


Install and boot

Some people tell they got problems when a stick is plugged in and the system is being installed or simply booting. I didn't have such problems with SuSE Linux 9.1, only with Mandrake Linux releases (which aren't much better at USB sticks). Anyway if you get problems think about removing the stick.

On the contrary, rebooting the computer several times can help. When I format my stick in FAT format, if I immediately try to access its content through Konqueror or Nautilus, the whole computer will crash. If I simply let the stick plugged in for a few days and restart the computer once in a while, the problem seems to dissolve. I can then access the stick with no more problems.


Updates

Installing the SuSE online updates is reported to solve some problems. I read about an USB mp3 player that got working only once the system was updated. I didn't observe the updates solve anything. Actually updating from kernel linux-2.6.5-7.108 to linux-2.6.5-7.108 made the system crashed everytime I tried to access the stick content. Anyway to perform the updates you need a good Internet connection, start Yast, click "Online Update" and follow the procedure.


Stick format and partition scheme

Things got better once I formated the stick in FAT32. The solution to avoid the third problem and ease the second one is to format the stick in FAT 32 format and not FAT 12 or FAT 16.

Formating in any Linux format (Ext2, Ext3, ReiserFS...) seems the best option but your stick won't be readable under Windows.

The solution to the fourth problem is to set up a proper partition scheme inside the stick.

If your stick is completely stuck with your SuSE 9.1 system and you cannot format it like described below, maybe do the formatting with another Linux release or another computer. Possibly use KNOPPIX.

All the operations listed below can be performed with Yast. I list them with standard Unix tools so you can use any Linux system.

Be careful. If you have one or more SCSI disks on your system, /dev/sda will probably be one of those SCSI disks. Then performing the commands described below will erase the data on that disk. In order to check your SCSI disks, type this command in a terminal window (console):


lsscsi


It yields this on my system, with my USB stick plugged in. Obviously I have no SCSI disk plugged in and my USB stick is recognized and installed as /dev/sda. Everything's fine:


[3:0:0:0]    disk    Generic  USB Flash Disk   2.00  /dev/sda


I suppose for the rest of this text the USB stick is /dev/sda.

Plug the stick in. If its light blinks for a short while and stops, it's OK, go to the next step (it's OK if it blinks again a while later). Otherwise, if the light never blinks and stays forever on or off, unplug and replug the stick. Maybe try to restart the computer. If you never succeed to get the stick light blinking for a second, try another Linux release or computer. To be sure the stick is recognized, type the lsscsi command. The lsusb command won't help because its output is not always much readable and it doesn't prove the USB stick has been fully recognized. Typing more /etc/mtab gives clues but is not a proof either.

Once you're sure the stick is recognized (this is not mandatory), type this in a terminal window (being root) (no problem if the first command fails):


umount /dev/sda1
fdisk /dev/sda



The fdisk program will start. Type the p key to get the list of the partitions. Either there will be no partition, a partition named /dev/sda1 or there will be a mess of partitions. This is what's currently listed for my stick:


# fdisk /dev/sda

Command (m for help): p

Disk /dev/sda: 130 MB, 130809856 bytes
5 heads, 50 sectors/track, 1021 cylinders
Units = cylinders of 250 * 512 = 128000 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1021      127600   83  Linux

Command (m for help):


Erase every present partition by typing the d key then the partition number. Type p as many times you like to check no partitions remain. Erase them all.

Type n to create a new partition. Ask for a primary partition (p), numbered 1. Let it span form from the first cylinder till the last (default settings, just hit Enter twice).

Impose the sda1 partition to be of type b (FAT 32). Therefor type the t key then answer b. (Don't do this step if you intent to format using a Linux format. Then keep the default Linux type.)

Finally, hit the w key to write down this new partition layout inside the stick and exit the fdisk program. (Type the fdisk /dev/sda command anytime to check the partition layout if you're not sure.)

In order to format in FAT 32 type these commands (being root) (no problem if the first command fails):


umount /dev/sda1
mkfs.vfat -F 32 /dev/sda1


(If you want a Linux format, instead type for example  mkfs.ext3 /dev/sda1  or  mkfs.reiserfs /dev/sda1  .) (If you want to format with no partition layout, to be able to use the stick on some Apple Macintosh computers for example, type  mkfs.vfat -F 32 -I /dev/sda  (that is with no 1 behind sda and with the -I option).)

That's all. Unplug and replug the stick.

Two problems will remain yet you will be able to live with (well I can):


Strange behaviors

Sometimes when you plug in the stick, its light won't blink for a second, it will just stay on and you won't be able to access the content. Simply unplug it an replug it. Two or three times if necessary. Eventually it will start blinking. Wait ten seconds or so. Either a window will open with the stick content (if you configured so) or you will find an entry for the stick in the "My Computer" window (you can open this window immediately but you may have to wait a few seconds till the stick's icon appears).
When you start the computer with the stick already plugged in, there will be no entry for the stick in the "My Computer" window. There are some ways to cope with  this:
Entries on the desktop
One given stick always keeps the same entry in the /media directory. So a possibility is to create on your desktop (or elsewhere) a link towards that entry. That link will only suit for that given stick. If you have several sticks you will have to create a link for each stick (this can also be seen as an advantage).
Configure the KDE Desktop to list every mounted partition. I don't like that option because it lists unwanted partitions too. Anyway it's a solution.
Use a console / terminal window

The fifth problem (system crash) is the worst. An effective solution seems to be to handle the stick files through a console. Open a terminal window, cd towards the stick directory and issue standard shell file handling commands (ls cp mv rm...). For example this is what I typed to move a file towards my home directory:


cd /media/usb-storage-E7BF726EF234CEF4:0:0:0p1/
mv mire.sxd ~



(Don't type the whole usb-storage-E7BF726EF234CEF4:0:0:0p1 directory name. Just type usb- and hit the Tab key.)

Please note stick access through a console is quite slower than using Konqueror. On my computer anyway.



Eric Brasseur  -  October 21 2004  till  April 20 2006        [ Homepage | eric.brasseur@gmail.com ]