Dateien von meiner externen Festplatte werden nach dem Neustart nicht mehr indiziert. Ich muss neu mounten und dann ausführen
# updatedb
nach jedem Neustart. Das Problem wird aktualisiertb dauert einige Minuten für meine externen Festplatten. Gibt es eine Möglichkeit, die Indizierung für meine Externals nach dem Neustart beizubehalten, sodass der Befehl locate meine Externals durchsuchen kann?
EDIT:Per Anfrage hier sind meine Spezifikationen:
$ cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs ecryptfs fusesmb devtmpfs"
# mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/me/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=me)
/dev/sdb1 on /media/me type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sdd1 on /media/Little Boy type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sde1 on /media/Fat Man type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
# on_ac_power; echo $?
255
Beste Antwort
Dateien von Ihrer externen Festplatte werden nicht indiziert, weil updatedb
ist so konfiguriert, dass nichts unter /media
indiziert wird , wo normalerweise ein externer Speicher bereitgestellt wird. Diese Konfiguration wird in der Datei /etc/updatedb.conf
festgelegt . Genauer gesagt der Eintrag /media
in den PRUNEPATHS
Linie.
Einige Ideen, wie Sie updatedb
erstellen können um Ihr externes Laufwerk zu indizieren:
1. Hängen Sie das externe Laufwerk unter /mnt
ein .
Wenn Ihre externe Festplatte dauerhaft eingebunden werden soll dann schlage ich vor, es so zu konfigurieren, dass es unter /mnt
gemountet wird statt unter /media
. Dies kann normalerweise durch Bearbeiten von /etc/fstab
erfolgen . Suchen Sie nach „fstab“, um mehr darüber zu erfahren. Sie benötigen sudo-Rechte, um /etc/fstab
zu bearbeiten .
2. Erstellen Sie eine dedizierte Datenbank für Ihre externe Festplatte und fragen Sie diese bei Bedarf ab.
Der folgende Befehl erstellt eine dedizierte Datenbank:
updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk
Dadurch wird die Datenbank in der versteckten Datei .externalharddisk.db
erstellt bei dir zuhause. Sie brauchen sudo
nicht für diesen Befehl. Führen Sie denselben Befehl erneut aus, um die Datenbank auf dem neuesten Stand zu halten. Achtung:Wenn Sie diesen Befehl ausführen, während die externe Festplatte nicht gemountet ist, dann updatedb
denkt, dass die Dateien gelöscht wurden und leert die Datenbank.
Sie können ein Skript einrichten, um diese Aufgabe zu automatisieren. Suchen Sie nach „Cronjob“, um zu erfahren, wie das geht. Hinweis:Sie können einen Benutzer-Cronjob als Benutzer einrichten. Sie benötigen keine sudo-Rechte, um einen Benutzer-Cronjob einzurichten.
Verwandte:Wie kann man Unity WebApps in Ubuntu 13.04 wieder aktivieren?Der folgende Befehl fragt die Datenbank ab:
locate -d ~/.externalharddisk.db searchterm
Sie können auch gleichzeitig die dedizierte Datenbank und die Standarddatenbank abfragen:
locate -d ~/.externalharddisk.db: searchterm
Der Doppelpunkt am Ende gefolgt von nichts bedeutet, dass auch in der Standarddatenbank gesucht werden soll.
Sie können zur einfacheren Verwendung einen Alias erstellen. Fügen Sie die folgende Zeile in Ihre .bashrc
ein :
alias locate-external='locate -d ~/.externalharddisk.db:'
Jetzt können Sie locate
verwenden um nur die Standarddatenbank und locate-external
zu durchsuchen um auch auf Ihrer externen Festplatte zu suchen.
3. Entfernen Sie /media
von PRUNEPATHS
Hinweis:Ich empfehle dies nicht ! Das liegt an der Art updatedb
funktioniert. Wenn updatedb
läuft, während die externe Festplatte entfernt wird, werden alle Einträge, die auf die externe Festplatte zeigen, aus der Datenbank entfernt. Wenn updatedb
läuft, während die externe Festplatte angeschlossen ist, dann werden wieder Einträge hinzugefügt, die auf die externe Festplatte verweisen. Seit updatedb
regelmäßig im Hintergrund läuft, kann man nie sicher sein, ob die Dateien von der externen Festplatte gerade indexiert sind oder nicht.
Außerdem:wenn Sie /media
entfernen von PRUNEPATHS
, gilt dieses Verhalten auch für jeden anderen externen Speicher, den Sie während updatedb
gemountet haben aktualisiert die Datenbank.