Crazy experiment time. What happens when you have a disk with 100 partitions? The replacement for the old MBR standard for partitions on PC hardware is slowly being replaced with GUID partitions. The later increased the maximum number of partitions to 128 which is probably far more than anyone needs, but what happens when you have a disk with 100 partitions?
As it happens, I had a spare external drive to play with, so set something up :-
for x in {1..99}
do
parted /dev/sdc mkpart FAT $(($x * 100)) $((x * 100 + 99))
mkfs -t vfat /dev/sdc${x}
done
This took a surprising amount of time to run with two interesting effects :-
- The mkfs tool refused to make a filesystem on /dev/sdc16 and /dev/sdc80 as it claimed it would be creating a filesystem on a full disk device. I suspect that this is a bug due to simplistic assumption of what constitutes a full disk device based on minor device numbers (/dev/sdc16 happened to be 0 and /dev/sdc80 happened to be 64). This could probably be solved by using device nodes within /dev/disk/by-${something}/${whatever}.
- The Unity Launcher appeared to attempt to populate itself with the new filesystems as they were being created, but very rapidly decided not to bother. This happened several times.
Once the creation process was complete, I reconnected the external drive to my Ubuntu machine, and yes the launcher does contain a ton of hard disk icons. The launcher is still full functional, but having a hundred (or so) devices below the normal icons does make using it a little clumsy.
Fortunately it did not mount all the filesystems automatically – closing that many windows would be very tedious. Mounting them all via a file manager window was pretty tedious, but it worked :-
/dev/sdc56 95M 0 95M 0% /media/mike/8663-39C5
/dev/sdc65 95M 0 95M 0% /media/mike/8673-0919
/dev/sdc71 95M 0 95M 0% /media/mike/873E-FEE7
/dev/sdc72 95M 0 95M 0% /media/mike/8741-47B3
/dev/sdc79 95M 0 95M 0% /media/mike/874D-4B53
/dev/sdc81 95M 0 95M 0% /media/mike/874E-D280
/dev/sdc82 95M 0 95M 0% /media/mike/8752-1ACE
/dev/sdc83 95M 0 95M 0% /media/mike/8754-2562
/dev/sdc84 95M 0 95M 0% /media/mike/8755-D262
/dev/sdc86 95M 0 95M 0% /media/mike/8759-0D82
/dev/sdc87 95M 0 95M 0% /media/mike/875A-E5C5
/dev/sdc89 95M 0 95M 0% /media/mike/875E-035B
/dev/sdc92 95M 0 95M 0% /media/mike/8763-8FB5
/dev/sdc93 95M 0 95M 0% /media/mike/8765-7A2F
/dev/sdc94 95M 0 95M 0% /media/mike/8767-1DBC
/dev/sdc95 95M 0 95M 0% /media/mike/8768-D314
/dev/sdc96 95M 0 95M 0% /media/mike/876A-A46E
/dev/sdc97 95M 0 95M 0% /media/mike/876B-F064
/dev/sdc98 95M 0 95M 0% /media/mike/876D-9D90
/dev/sdc58 95M 0 95M 0% /media/mike/8666-B9AA
/dev/sdc61 94M 0 94M 0% /media/mike/866B-8EFA
/dev/sdc62 95M 0 95M 0% /media/mike/866D-1726
/dev/sdc64 95M 0 95M 0% /media/mike/8671-5EE1
/dev/sdc66 95M 0 95M 0% /media/mike/8736-C2F5
/dev/sdc67 95M 0 95M 0% /media/mike/8737-EE95
/dev/sdc68 95M 0 95M 0% /media/mike/8739-7213
/dev/sdc69 94M 0 94M 0% /media/mike/873B-181F
/dev/sdc70 95M 0 95M 0% /media/mike/873C-E80C
/dev/sdc73 95M 0 95M 0% /media/mike/8743-11E7
/dev/sdc74 95M 0 95M 0% /media/mike/8745-28A8
/dev/sdc75 95M 0 95M 0% /media/mike/8746-CA94
/dev/sdc77 95M 0 95M 0% /media/mike/874A-1D30
/dev/sdc78 95M 0 95M 0% /media/mike/874B-C1C7
/dev/sdc85 95M 0 95M 0% /media/mike/8757-77A0
/dev/sdc88 94M 0 94M 0% /media/mike/875C-6DF9
/dev/sdc90 95M 0 95M 0% /media/mike/8760-8FD5
/dev/sdc91 94M 0 94M 0% /media/mike/8762-01DA
/dev/sdc99 94M 0 94M 0% /media/mike/8770-0F74
/dev/sdc1 93M 0 93M 0% /media/mike/8609-229A
/dev/sdc17 95M 0 95M 0% /media/mike/8621-921D
/dev/sdc21 95M 0 95M 0% /media/mike/8628-8CDB
/dev/sdc22 95M 0 95M 0% /media/mike/862A-2217
/dev/sdc23 94M 0 94M 0% /media/mike/862B-8EF9
/dev/sdc25 95M 0 95M 0% /media/mike/862F-0BE5
/dev/sdc27 95M 0 95M 0% /media/mike/8633-1F9D
/dev/sdc28 95M 0 95M 0% /media/mike/8634-A26F
/dev/sdc34 95M 0 95M 0% /media/mike/863E-14EB
/dev/sdc37 95M 0 95M 0% /media/mike/8643-1F63
/dev/sdc4 95M 0 95M 0% /media/mike/860D-2753
/dev/sdc40 95M 0 95M 0% /media/mike/8647-8E49
/dev/sdc41 95M 0 95M 0% /media/mike/8649-033D
/dev/sdc42 94M 0 94M 0% /media/mike/864A-A12A
/dev/sdc43 95M 0 95M 0% /media/mike/864C-6EEF
/dev/sdc44 95M 0 95M 0% /media/mike/864E-3469
/dev/sdc45 95M 0 95M 0% /media/mike/8650-8796
/dev/sdc46 95M 0 95M 0% /media/mike/8652-64DF
/dev/sdc47 95M 0 95M 0% /media/mike/8653-F743
/dev/sdc48 95M 0 95M 0% /media/mike/8655-B14B
/dev/sdc49 95M 0 95M 0% /media/mike/8657-34FF
/dev/sdc5 95M 0 95M 0% /media/mike/860E-EBD7
/dev/sdc50 94M 0 94M 0% /media/mike/8658-A04A
/dev/sdc51 95M 0 95M 0% /media/mike/865A-D4D3
/dev/sdc52 95M 0 95M 0% /media/mike/865C-33D1
/dev/sdc53 95M 0 95M 0% /media/mike/865D-FA56
/dev/sdc54 95M 0 95M 0% /media/mike/8660-6C95
/dev/sdc55 95M 0 95M 0% /media/mike/8661-D456
/dev/sdc57 95M 0 95M 0% /media/mike/8665-0AFD
/dev/sdc59 95M 0 95M 0% /media/mike/8668-3D53
/dev/sdc6 95M 0 95M 0% /media/mike/8610-F9B0
/dev/sdc60 95M 0 95M 0% /media/mike/866A-0A0E
/dev/sdc63 95M 0 95M 0% /media/mike/866E-F6E7
/dev/sdc76 95M 0 95M 0% /media/mike/8748-8D02
/dev/sdc10 95M 0 95M 0% /media/mike/8616-B29F
/dev/sdc11 95M 0 95M 0% /media/mike/8618-6462
/dev/sdc12 94M 0 94M 0% /media/mike/861A-5208
/dev/sdc13 95M 0 95M 0% /media/mike/861B-BA6E
/dev/sdc14 95M 0 95M 0% /media/mike/861D-5133
/dev/sdc15 95M 0 95M 0% /media/mike/861E-C384
/dev/sdc18 95M 0 95M 0% /media/mike/8623-BFCF
/dev/sdc19 95M 0 95M 0% /media/mike/8625-9D85
/dev/sdc2 95M 0 95M 0% /media/mike/860A-504E
/dev/sdc20 94M 0 94M 0% /media/mike/8627-1391
/dev/sdc24 95M 0 95M 0% /media/mike/862D-457F
/dev/sdc26 95M 0 95M 0% /media/mike/8631-5F8A
/dev/sdc29 95M 0 95M 0% /media/mike/8636-2F58
/dev/sdc3 95M 0 95M 0% /media/mike/860B-8C77
/dev/sdc30 95M 0 95M 0% /media/mike/8637-F726
/dev/sdc31 94M 0 94M 0% /media/mike/8639-6B19
/dev/sdc32 95M 0 95M 0% /media/mike/863A-FBBC
/dev/sdc33 95M 0 95M 0% /media/mike/863C-AE68
/dev/sdc35 95M 0 95M 0% /media/mike/8640-3A10
/dev/sdc36 95M 0 95M 0% /media/mike/8641-93A6
/dev/sdc38 95M 0 95M 0% /media/mike/8644-AFCF
/dev/sdc39 94M 0 94M 0% /media/mike/8646-1BAE
/dev/sdc7 95M 0 95M 0% /media/mike/8612-54E8
/dev/sdc8 95M 0 95M 0% /media/mike/8613-C38C
/dev/sdc9 95M 0 95M 0% /media/mike/8615-3522
Yes I have cut the “interesting” filesystems out of that output.
Windows (7) does deal quite so well with the situation. After rebooting into Windows with the disk plugged in, the login process seemed to take longer than usual (although I don’t boot Windows enough to be sure).
Once logged in, everything seemed fine including the little popup window by the status bar saying it was configuring the plugged in disk drive. However that took longer than expected – after clicking on it for details, it took around 5 minutes to complete. At which point it stuck a red cross by the “Disk Drive” whilst it popped up an Autoplay window for drives E: through Z:. With an offer to format drive T: – so it could at least use the drive that Linux refused (by default) to format.
However except for that little red cross, there was no clear warning that it failed to do anything with nearly 80 partitions. And closing all those popup Autoplay windows was pretty tedious.
OSX (10.9) dealt a little better with the disk; it at least recognised all of the disks, and stuck up little icons for each one. And mounted them all. However Finder didn’t seem to respond to attempts to unmount the disks … I had to resort to the command-line. Perhaps I wasn’t patient enough.
And the moral of this little crazy experiment? Whilst we can perhaps throw a little mud at Microsoft, the main lesson learnt is that you too can annoy someone using Windows by handing them an external hard disk with 100 partitions. Especially if the information they want is not in the first 20-odd partitions <Evil Grin>
Oh! And just stating the obvious – it’s a good idea to remove the partitions before putting the spare disk away, or you may encounter a nasty surprise later!