Eu tenho um Raspberry Pi com Arch Linux e Kodi. Tentei fazer toda a configuração pelas novas formas do Systemd, isto é, criando unidades Systemd. Por exemplo, em vez de configurar os pontos de montagem na inicialização com o arquivo / etc / fstab .mount unidades.
Eu fiz a configuração do automounting com o Udisks2 e o Polkit.
Quando eu não desconectar o HDD e ordenar a reinicialização do sistema, vejo que o HDD é montado em um novo diretório em / media após cada inicialização. Por exemplo, suponha que antes de reinicializar o HDD foi montado em / media / Untitled . Após a reinicialização, ele será montado automaticamente em / media / Untitled1 . A próxima vez em / media / Untitled2 e assim por diante. Eu quero que ele seja montado sempre em / media / Untitled .
Talvez a solução seja aqui , mas eu não sei.
Edit: Eu tenho as seguintes unidades de montagem (no diretório / etc / systemd / system ):
A unidade de montagem de inicialização ( boot.mount ):
# boot.mount
[Unit]
Description=Boot partition
[Mount]
What=/dev/disk/by-uuid/<BOOT_PART_UUID>
Where=/boot
Type=vfat
Options=defaults
[Install]
WantedBy=multi-user.target
A unidade de montagem raiz ( / ) ( -. mount ):
# -.mount
[Unit]
Description=Root partition
[Mount]
What=/dev/disk/by-uuid/<ROOT_PART_UUID>
Where=/
Type=ext4
Options=noauto,x-systemd.automount
[Install]
WantedBy=multi-user.target
A unidade de montagem inicial ( home.mount ):
# home.mount
[Unit]
Description=Home partition
[Mount]
What=/dev/disk/by-uuid/<HOME_PART_UUID>
Where=/home
Type=ext4
Options=noauto,x-systemd.automount
[Install]
WantedBy=multi-user.target
As regras do Polkit são (sob o diretório /etc/polkit-1/rules.d ):
50-udisks.rules
// 50-udisks.rules
polkit.addRule(function(action, subject) {
var YES = polkit.Result.YES;
var permission = {
//// only required for udisks1:
//"org.freedesktop.udisks.filesystem-mount": YES,
//"org.freedesktop.udisks.filesystem-mount-system-internal": YES,
//"org.freedesktop.udisks.luks-unlock": YES,
//"org.freedesktop.udisks.drive-eject": YES,
//"org.freedesktop.udisks.drive-detach": YES,
// only required for udisks2:
"org.freedesktop.udisks2.filesystem-mount": YES,
"org.freedesktop.udisks2.filesystem-mount-system": YES,
"org.freedesktop.udisks2.encrypted-unlock": YES,
"org.freedesktop.udisks2.eject-media": YES,
"org.freedesktop.udisks2.power-off-drive": YES,
// required for udisks2 if using udiskie from another seat (e.g. systemd):
"org.freedesktop.udisks2.filesystem-mount-other-seat": YES,
"org.freedesktop.udisks2.encrypted-unlock-other-seat": YES,
"org.freedesktop.udisks2.eject-media-other-seat": YES,
"org.freedesktop.udisks2.power-off-drive-other-seat": YES
};
if (subject.isInGroup("storage")) {
return permission[action.id];
}
});
(estou usando o Udisks2.)
48-shutdown-power-group.rules
// 48-shutdown-power-group.rules
polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.login1.reboot" ||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
action.id == "org.freedesktop.login1.power-off" ||
action.id == "org.freedesktop.login1.power-off-multiple-sessions" ||
action.id == "org.freedesktop.login1.suspend" ||
action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
action.id == "org.freedesktop.login1.hibernate" ||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions") && subject.isInGroup("power"))
{
return polkit.Result.YES;
}
});
As regras do udev (no diretório /etc/udev/rules.d ):
99-udisks2.rules
# 99-udisks2.rules
# UDISKS_FILESYSTEM_SHARED
# ==1: mount filesystem to a shared directory (/media/VolumeName)
# ==0: mount filesystem to a private directory (/run/media/$USER/VolumeName)
# See udisks(8)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"