Label question...why does ufs label vanish on mount?
Stefan Bethke
stb at lassitu.de
Tue Oct 12 20:41:50 UTC 2010
Am 12.10.2010 um 22:19 schrieb Kevin Oberman:
>> From: Stefan Bethke <stb at lassitu.de>
>> Date: Tue, 12 Oct 2010 22:01:24 +0200
>>
>> Am 12.10.2010 um 20:51 schrieb Kevin Oberman:
>>
>>> For some reason the /dev/ufs/label entry that geom creates for every UFS
>>> formatted partition is deleted when the device is mounted. This is not
>>> the case for other file systems, though I have not tried them all. It
>>> makes the drive much harder to deal with when you have to keep track of
>>> which physical drive contains the labeled media. It is a particular
>>> issue for hald and the tools which depend on it.
>>
>> In 8, only the ones that are not mounted are removed; they are
>> restored on unmount. So when you mount the filesystem via it's label,
>> that entry continues to exist. And it's not limited to any particular
>> label type, I've noticed the same with partitions that I used gmirror
>> on.
>
> Sorry, but my experience in contrary to that. I mount "/dev/ufs/aux" and
> that device name is returned by df(1), but 'ls /dev/ufs' no longer
> contains 'aux'. This broke gnome-mount and required patching hald to
> ignore device created in /dev/ufs. Otherwise, when the device was
> removed, the /dev/ufs device was re-created, a devd creation event
> occurred and the partition was immediately re-mounted. It made it
> impossible to unplug the USB drive.
>
> Joe Marcus added a test of the created device to hald so the creation of
> /dev/ufs/aux would be ignored and the device always mounted by the
> hardware device name.
>
> This all works fine for msdosfs systems. The /dev/msdosfs entry does
> stay around when the device is mounted as /dev/msdosfs and all is
> well. I'd like to see consistent behavior before we get to making
> devicekit work with FreeBSD. (devicekit will replace hald some day.)
This got me curious, so I fired up my -stable VM. I only tried UFS, but label entries do not reappear constently, at least in the quick test I did. And I still don't understand why they get removed in the first place.
root at freebsd8:~# uname -a
FreeBSD freebsd8.lassitu.de 8.1-STABLE FreeBSD 8.1-STABLE #2 r212724: Thu Sep 16 15:22:34 UTC 2010 root at freebsd8.lassitu.de:/usr/obj/usr/src/sys/MINIMAL amd64
Here's what I tried with a 1 gig stick that probes as:
umass0: <Kingston DataTraveler 2.0, class 0/0, rev 2.00/1.10, addr 2> on usbus1
(probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
(probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
(probe0:umass-sim0:0:0:0): SCSI status: Check Condition
(probe0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:28,0 (Not ready to ready change, medium may have changed)
da2 at umass-sim0 bus 0 scbus1 target 0 lun 0
da2: <Kingston DataTraveler 2.0 PMAP> Removable Direct Access SCSI-0 device
da2: 40.000MB/s transfers
da2: 984MB (2015232 512 byte sectors: 64H 32S/T 984C)
root at freebsd8:~# gpart create -s gpt /dev/da2
da2 created
root at freebsd8:~# gpart add -s 256m -l ufs -t freebsd-ufs da2
da2p1 added
root at freebsd8:~# gpart list da2
Geom name: da2
fwheads: 64
fwsectors: 32
last: 2015198
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: da2p1
Mediasize: 268435456 (256M)
Sectorsize: 512
Mode: r0w0e0
rawtype: 516e7cb6-6ecf-11d6-8ff8-00022d09712b
label: ufs
length: 268435456
offset: 17408
type: freebsd-ufs
index: 1
end: 524321
start: 34
Consumers:
1. Name: da2
Mediasize: 1031798784 (984M)
Sectorsize: 512
Mode: r0w0e0
root at freebsd8:~# ls /dev/gpt
ufs
root at freebsd8:~# ls /dev/gptid
bba94c8e-d63f-11df-888c-000c295e330a
root at freebsd8:~# newfs -L ufslabel /dev/da2p1
/dev/da2p1: 256.0MB (524288 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 64.02MB, 4097 blks, 8256 inodes.
super-block backups (for fsck -b #) at:
160, 131264, 262368, 393472
root at freebsd8:~# mount /dev/da2p1 /mnt
root at freebsd8:~# ls /dev/gpt
root at freebsd8:~# ls /dev/ufs
root at freebsd8:~# ls /dev/gptid
root at freebsd8:~# umount /mnt
root at freebsd8:~# mount /dev/ufs/ufslabel /mnt
root at freebsd8:~# ls /dev/da2p1
/dev/da2p1
root at freebsd8:~# ls /dev/gpt
root at freebsd8:~# ls /dev/ufs
ufslabel
root at freebsd8:~# ls /dev/gptid
root at freebsd8:~# umount /mnt
root at freebsd8:~# ls -l /dev/da2p1 /dev/gpt /dev/gptid /dev/ufs
crw-r----- 1 root operator 0, 103 Oct 12 20:34 /dev/da2p1
/dev/gpt:
total 0
crw-r----- 1 root operator 0, 111 Oct 12 20:34 ufs
/dev/gptid:
total 0
crw-r----- 1 root operator 0, 112 Oct 12 20:34 bba94c8e-d63f-11df-888c-000c295e330a
/dev/ufs:
total 0
crw-r----- 1 root operator 0, 108 Oct 12 20:34 ufslabel
I then unplugged and replugged the stick:
root at freebsd8:~# ls -l /dev/da2p1 /dev/gpt /dev/gptid /dev/ufs
crw-r----- 1 root operator 0, 103 Oct 12 20:34 /dev/da2p1
/dev/gpt:
total 0
crw-r----- 1 root operator 0, 111 Oct 12 20:34 ufs
/dev/gptid:
total 0
crw-r----- 1 root operator 0, 112 Oct 12 20:34 bba94c8e-d63f-11df-888c-000c295e330a
/dev/ufs:
total 0
crw-r----- 1 root operator 0, 108 Oct 12 20:34 ufslabel
--
Stefan Bethke <stb at lassitu.de> Fon +49 151 14070811
More information about the freebsd-stable
mailing list