Arch Linux: Ondersteuning voor USB-opslag in XFCE met udisks2
Sinds ik Arch Linux op een reserve-laptop gebruik, vroeg ik mij af of ik eenvoudig een USB-stick kan aansluiten en gebruiken met de bestandsbeheerder Thunar, wat deel uitmaakt van de XFCE-omgeving die ik gebruik. In deze post leg ik uit hoe ik de ondersteuning voor het eenvoudig koppelen van USB-opslag heb ingeregeld.
Omdat ik vaak werk met USB-harddisks en USB-sticks, vind ik het belangrijk dat dit eenvoudig werkt.
Echter, toen ik een USB-stick aansloot, gebeurde er niets in Thunar; de schijf werd niet weergegeven. Hoewel dit niet verrassend was gezien mijn minimale installatie, vond ik het toch onpraktisch dat ik geen eenvoudige toegang tot USB-opslag had.
Het probleem was dus dat de USB-stick wel degelijk werd gedetecteerd door het systeem, maar niet automatisch werd weergegeven in de bestandsbeheerder.
# dmesg -T
[..]
[Wed Jul 31 21:15:43 2024] usb 2-1: new SuperSpeed USB device number 7 using xhci_hcd
[Wed Jul 31 21:15:43 2024] usb 2-1: New USB device found, idVendor=0951, idProduct=16b3, bcdDevice= 1.00
[Wed Jul 31 21:15:43 2024] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[Wed Jul 31 21:15:43 2024] usb 2-1: Product: HyperX Savage
[Wed Jul 31 21:15:43 2024] usb 2-1: Manufacturer: Kingston
[Wed Jul 31 21:15:43 2024] usb 2-1: SerialNumber: XXXXF30BYYYYE191ZZZZ9DAA
[Wed Jul 31 21:15:43 2024] usb-storage 2-1:1.0: USB Mass Storage device detected
[Wed Jul 31 21:15:43 2024] scsi host1: usb-storage 2-1:1.0
[Wed Jul 31 21:15:44 2024] scsi 1:0:0:0: Direct-Access Kingston HyperX Savage PMAP PQ: 0 ANSI: 6
[Wed Jul 31 21:15:44 2024] sd 1:0:0:0: [sdb] 491520000 512-byte logical blocks: (252 GB/234 GiB)
[Wed Jul 31 21:15:44 2024] sd 1:0:0:0: [sdb] Write Protect is off
[Wed Jul 31 21:15:44 2024] sd 1:0:0:0: [sdb] Mode Sense: 2b 00 00 08
[Wed Jul 31 21:15:44 2024] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[Wed Jul 31 21:15:44 2024] sdb: sdb1 sdb2
[Wed Jul 31 21:15:44 2024] sd 1:0:0:0: [sdb] Attached SCSI removable disk
[..]
Kortom, er ontbrak iets. Ik vroeg me af wat de gebruikelijke manier is om het automatisch koppelen van USB-opslag in Thunar onder XFCE op Arch Linux te regelen.
Na wat zoeken, vond ik al snel de uitleg over udisks2 op de ArchWiki. Met het commando pacman -S udisks2
was udisks2
snel geïnstalleerd, maar toch kon ik de USB-stick niet terug vinden in Thunar.
Na wat verder zoeken vond ik op een Debian-forum informatie over Pollkit-regels en hun rol in het automatisch koppelen van schijven: Re: What commands does Thunar use to mount drives?. Ik heb vervolgens het bestand /etc/polkit-1/rules.d/10-desktop.policy.pkla
aangemaakt en aangepast.
[Mounting, checking, etc. of internal drives]
Identity=unix-group:wheel;unix-user:bouke;
Action=org.freedesktop.udisks2.filesystem-*;org.freedesktop.udisks2.drive-ata-smart*
ResultActive=yes
In plaats van de groep admin
heb ik gekozen voor wheel
. Daarnaast heb ik mijn gebruikersnaam ingevoerd achter unix-user:
.
Verder heb ik nog een aantal extra pakketten geïnstalleerd, omdat ik onder andere met NTFS-partities en met gedeelde mappen wil werken.
[!] Klik hier om aanvullende tekst uit of in te klappen
Ik heb met expac
gecontroleerd welke pakketten ik geïnstalleerd heb. Het gaat om de volgende pakketten: libblockdev, libblockdev-crypto, libblockdev-fs, libblockdev-loop, libblockdev-mdraid, libblockdev-nvme, libblockdev-part, libblockdev-swap, libbytesize, libnvme, mdadm, udisks2, volume_key, btrfs-progs, dosfstools, e2fsprogs, exfatprogs, f2fs-tools, libblockdev-btrfs, libblockdev-lvm, lvm2, nilfs-utils, thin-provisioning-tools, udftools, udisks2-btrfs, udisks2-lvm2, xfsprogs, cifs-utils, gio-qt, gvfs, ldb, libbsd, libcdio, libcdio-paranoia, libmd, libwbclient, talloc, tevent, gvfs-smb, smbclient, ntfs-3g
.
Hoewel je met pacman -Q
alle geïnstalleerd pakketten kunt bekijken, kan met pacman
geen op datum gesorteerde lijst gemaakt worden. Maar met het programma expac
is dat wel mogelijk. Met pacman -S expac
kun je expac
installeren. Met het volgende commando kun je de pakketten gesorteerd weergeven: expac --timefmt='%Y-%m-%d %H:%M:%S' '%l\t%n' | sort
.
Met het commando history
heb ik gecontroleerd welke commando' s ik gebruikt heb voor de pakket-installatie.
history | grep pacman
[..]
pacman -Syu udisks2
pacman -S udisks2-btrfs udisks2-lvm2 btrfs-progs dosfstools exfatprogs e2fsprogs f2fs-tools nilfs-utils udftools xfsprogs
pacman -S gio-qt gvfs gvfs-smb
pacman -S ntfs-3g
[..]
Wanneer ik kritisch naar de hoogstnodige pakketten kijk, dan zou voor minimale ondersteuning volstaan kunnen worden met de pakketten udisks2
en gvfs
. Maar voor ondersteuning van diverse bestandssystemen zijn extra pakketten nodig, zoals ntfs-3g
voor NTFS, dosfstools
voor FAT, exfatprogs
voor exFAT, e2fsprogs
voor ext4, btrfs-progs
voor Btrfs, xfsprogs
voor XFS en f2fs-tools
voor F2FS. Deze laatste is speciaal ontworpen voor flash cards.
Kortom: ik had het volgende commando kunnen geven om in één keer alle benodigde pakketten te installeren:
pacman -S udisks2 gvfs ntfs-3g dosfstools exfatprogs e2fsprogs btrfs-progs xfsprogs f2fs-tools
Omdat ik ook met netwerkshares wil werken, heb ik dan nog de volgende twee pakketten nodig: smbclient
en gvfs-smb
.
pacman -S smbclient gvfs-smb
Het bestand /etc/polkit-1/rules.d/10-desktop.policy.pkla
met Polkit-regels kan verder vereenvoudigd worden, door de gebruikersnaam weg te laten. Alle gebruikers van de groep wheel
kunnen dan eenvoudig gebruik maken van USB-opslag.
[Mounting, checking, etc. of internal drives]
Identity=unix-group:wheel;
Action=org.freedesktop.udisks2.filesystem-*;org.freedesktop.udisks2.drive-ata-smart*
ResultActive=yes
Met deze stappen heb ik de ondersteuning voor het eenvoudig koppelen van USB-opslag in Thunar ingeregeld. Door de juiste pakketten te installeren en een enkel configuratiebestand toe te voegen, werkt alles nu naar behoren. Voor een minimale setup volstaan udisks2
en gvfs
. Extra pakketten zijn alleen nodig voor ondersteuning van specifieke bestandssystemen of netwerkschijven. De Polkit-regels kunnen verder worden vereenvoudigd door alleen de groepsnaam te gebruiken, wat zorgt voor bredere toegang zonder specifieke gebruikersnamen te vermelden.
Let op: de exacte vereisten kunnen variëren afhankelijk van updates en veranderingen in Arch Linux en de bijbehorende software. Voor meer gedetailleerde informatie kun je de ArchWiki en andere documentatie raadplegen. Hopelijk helpt deze blogpost anderen die tegen vergelijkbare problemen aanlopen. Als je vragen of suggesties hebt, laat het me dan weten in de reacties.