[Wylug-help] USB Flash: device numbers, filenames and grub

Anne Wilson cannewilson at tiscali.co.uk
Fri Jan 26 19:07:42 GMT 2007


On Friday 26 January 2007 16:58, Dave Fisher wrote:
> Hi,
>
> Could someone explain, or point me to some reasonable quality
> documentation that would give me a chance of figuring it out, the
> following:
>
> 1. I get inconsistent behaviour when I unmount/eject different usb
>    sticks on the same PC (running Ubuntu 6.10 Edgy, with a 2.6.17-10-386
>    kernel).
>
>    When I unmount the single partition on one stick, the partition
>    device file (/dev/sda1 on this occasion) disappears, but the device
>    file for the whole device (/dev/sda) remains.
>
>    If I then insert a different stick, it gets the device file /dev/sdb
>    (presumably because /dev/sda remains in the file system) and its
>    partitions get /dev/sdb1, /dev/sdb2 and /dev/sdb3.
>
>    But if I unmount/eject any one of those partitions:
>
>    a) They are all unmounted.
>
>    b) All of their device files remain on the file system.
>
>
> 2. I presume that there is a clean way of removing device files from the
>    system, (e.g. to ensure that if I only have one stick inserted, it
>    always gets /dev/sda ... assuming no other scsi devices).
>
>    Or is that wishful thinking?
>
>
> 3. I've been experimenting with booting and running entire systems from
>    USB sticks.  However, I suspect that my success so far is partly down
>    to luck, e.g. using similar PCs, none of which had other usb or scsi
>    devices attached.
>
>    I'd like to make my current stick-hosted system more robustly
>    portable, but the device file naming issue is a bit of an obstacle.
>
>    I am booting from grub, which provides command line completion for
>    finding discs, partitions and even ordinary files on unmounted
>    systems (cool).
>
>    Unfortunately, grub doesn't seem to be able to do this for device
>    file names, so I have to predict (i.e. guess) which device file the
>    USB-based root filesystem is going to appear on, in order pass the
>    kernel the correct vaue for its "root=" parameter.
>
>    In simple cases (e.g. one HDD, one USB stick) this needn't be a
>    problem, because I can accurately predict the device file name for
>    the root partition of the USB-based system.
>
>    Unfortunately, there are many common, non-simple, cases.
>
>    For example, If the host PC contains multiple partitioned hard
>    drives, grub can number them like so:
>
>    (Hd0)   = /dev/hda
>    (Hd0,0) = /dev/hda1
>    (Hd0,1) = /dev/hda2
>    (Hd1)   = /dev/sda
>    (Hd1,0) = /dev/sda1
>    (Hd2)   = /dev/hdd
>    (Hd2,0) = /dev/hdd1
>
>    I expected that grub would name these in device type order, e.g.
>    all the IDE drives in channel-disc-partition order, then all the
>    usb/scsi drives in channel-disc-partition order.
>
>    Since I know that IDE and USB devices use scsi addressing, I'm not
>    really surprised by the fact that grub naming doesn't follow that
>    pattern, i.e, interleaving sd* devices with hd* devices.
>
>    What concerns me is that I don't know how the order is determined,
>    e.g. why an attached USB stick has a lower number than an on-board
>    IDE disc.
>
>    This is not an absolute obstacle, because one can always use the
>    grub command line to figure out and set these names interactively.
>
>    It would, however, be nicer to predict them, and hence offer
>    end-users simple and reliable options on a menu.
>
>    So in effect, I have two naming predicton problems:
>
>    a) How to predict the grub name for the device.
>
>    b) How to predict the device file name for the root file system.
>
>    Are the two in any way related, e.g. to scsi device orders?
>
Dave, I've been looking into usb device naming, though not with booting in 
mind, so I don't know how much this helps.

As far as I can make out, there's no way that you can alter the order that 
they are mounted.  What you can do, is make /dev/whatevers that point to the 
device you want.  For instance, I have /dev/webcam, that sometimes points 
to /dev/video0 and sometimes to /dev/video1.  This is set up by using the 
information from udevinfo.  If you think this may solve at least some of your 
problems, there's a great tutorial at 
www.reactivated.net/writing_udev_rules.html

Anne
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://list.wylug.org.uk/pipermail/wylug-help/attachments/20070126/d22aa159/attachment.bin


More information about the Wylug-help mailing list