Duplicates in /proc/partitions

Brian Inglis Brian.Inglis@SystematicSw.ab.ca
Mon Aug 16 16:56:32 GMT 2021


On 2021-08-16 08:51, Corinna Vinschen via Cygwin wrote:
> On Aug 13 12:56, David Balažic via Cygwin wrote:
>> Before, during and after plugging in a n USB stick:
>>
>> $ cat /proc/partitions
>> major minor  #blocks  name   win-mounts
>>
>>      8     0 1000204632 sda
>>      8     1    102400 sda1
>>      8     2     16384 sda2
>>      8     3 999571820 sda3   C:\
>>      8     4    510976 sda4
>>
>> $ cat /proc/partitions
>> major minor  #blocks  name   win-mounts
>>
>>      8     0 1000204632 sda
>>      8     1    102400 sda1
>>      8     2     16384 sda2
>>      8     3 999571820 sda3   C:\
>>      8     4    510976 sda4
>>      8    16  62522712 sdb
>>      8    17   4096000 sdb1   D:\
>>      8    18  58424664 sdb2
>>      8    16  62522712 sdb
>>      8    17   4096000 sdb1   D:\
>>      8    18  58424664 sdb2   E:\
>>
>> $ cat /proc/partitions
>> major minor  #blocks  name   win-mounts
>>
>>      8     0 1000204632 sda
>>      8     1    102400 sda1
>>      8     2     16384 sda2
>>      8     3 999571820 sda3   C:\
>>      8     4    510976 sda4
>>      8    16  62522712 sdb
>>      8    17   4096000 sdb1   D:\
>>      8    18  58424664 sdb2   E:\
>>
>>
>> So the second listing shows sdb twice. Also E: does not seem to exist
>> (see below).
> 
> So, second report.  Which OS is that on?  I don't have any physical
> Windows machine anymore, so I have a bit of a problem to reproduce this.
> 
> As I wrote in https://cygwin.com/pipermail/cygwin/2021-August/249012.html,
> I don't see how Cygwin would be able to duplicate entries, unless the OS
> itself duplicates entries.
> 
> Somebody who can duplicate this issue would have to single step through
> function format_proc_partitions, see
> 
> https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/fhandler_proc.cc;h=66d19ab82f;hb=HEAD#l1686
> 
> and check what actually happens in the above cases.

Could those with the symptoms not provide useful information using a 
script run in an elevated admin shell listing the relevant contents of 
Windows objects accessed by format_proc_partitions from /proc/sys/ 
similar to the attached script and log from my system, where the 
correspondence is obvious?

e.g. save script and run as:

# sh .../proc-sys-partitions.sh.txt |& tee .../proc-sys-partitions.log

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]
-------------- next part --------------
#!/bin/sh
# proc-sys-partitions.sh - list /proc/partitions and /proc/sys/ related objects

echo '#' '# elevated admin shell required'

cmd="tail -vn+0"

for p in /proc/partitions \
	"/proc/sys/Device/Harddisk[0-9]/Partition[0-9]" \
	"/proc/sys/DosDevices/GLOBALROOT/Device/Harddisk[0-9]/Partition[0-9]" \
	"/proc/sys/Device/Harddisk[0-9]/DR[0-9]" \
	"/proc/sys/Device/HarddiskVolume[0-9]"
do
    echo '#' $cmd "$p"
    $cmd $p

    cmd="ls -l"
done

-------------- next part --------------
# # elevated admin shell required
# tail -vn+0 /proc/partitions
==> /proc/partitions <==
major minor  #blocks  name   win-mounts

    8     0 976762584 sda
    8     1     16384 sda1
    8     2 976206318 sda2   C:\
    8     3    536576 sda3  
    8    16 976762584 sdb
    8    17    131072 sdb1
    8    18    102400 sdb2  
    8    19 975482161 sdb3   D:\
    8    20    577536 sdb4  
    8    21    465920 sdb5  
    8    32         0 sdc
# ls -l /proc/sys/Device/Harddisk[0-9]/Partition[0-9]
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk0/Partition0 -> /proc/sys/Device/Harddisk0/DR0
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk0/Partition1 -> /proc/sys/Device/HarddiskVolume1
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk0/Partition2 -> /proc/sys/Device/HarddiskVolume2
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk0/Partition3 -> /proc/sys/Device/HarddiskVolume3
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk1/Partition0 -> /proc/sys/Device/Harddisk1/DR1
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk1/Partition1 -> /proc/sys/Device/HarddiskVolume4
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk1/Partition2 -> /proc/sys/Device/HarddiskVolume5
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk1/Partition3 -> /proc/sys/Device/HarddiskVolume6
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk1/Partition4 -> /proc/sys/Device/HarddiskVolume7
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk1/Partition5 -> /proc/sys/Device/HarddiskVolume8
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk2/Partition0 -> /proc/sys/Device/Harddisk2/DR2
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/Device/Harddisk2/Partition1 -> /proc/sys/Device/HarddiskVolume9
# ls -l /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk[0-9]/Partition[0-9]
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk0/Partition0 -> /proc/sys/Device/Harddisk0/DR0
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk0/Partition1 -> /proc/sys/Device/HarddiskVolume1
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk0/Partition2 -> /proc/sys/Device/HarddiskVolume2
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk0/Partition3 -> /proc/sys/Device/HarddiskVolume3
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk1/Partition0 -> /proc/sys/Device/Harddisk1/DR1
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk1/Partition1 -> /proc/sys/Device/HarddiskVolume4
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk1/Partition2 -> /proc/sys/Device/HarddiskVolume5
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk1/Partition3 -> /proc/sys/Device/HarddiskVolume6
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk1/Partition4 -> /proc/sys/Device/HarddiskVolume7
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk1/Partition5 -> /proc/sys/Device/HarddiskVolume8
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk2/Partition0 -> /proc/sys/Device/Harddisk2/DR2
lr--r--r-- 1 Administrators SYSTEM 0 Aug 16 10:50 /proc/sys/DosDevices/GLOBALROOT/Device/Harddisk2/Partition1 -> /proc/sys/Device/HarddiskVolume9
# ls -l /proc/sys/Device/Harddisk[0-9]/DR[0-9]
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/Harddisk0/DR0
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/Harddisk1/DR1
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/Harddisk2/DR2
# ls -l /proc/sys/Device/HarddiskVolume[0-9]
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/HarddiskVolume1
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/HarddiskVolume2
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/HarddiskVolume3
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/HarddiskVolume4
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/HarddiskVolume5
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/HarddiskVolume6
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/HarddiskVolume7
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/HarddiskVolume8
brw-rw-rw- 1 BWI Users 284, 9999 Aug 16 10:50 /proc/sys/Device/HarddiskVolume9


More information about the Cygwin mailing list