GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Updatedb &Locate Command Problem – Dateien von externer Festplatte werden nach dem Neustart nicht mehr indiziert?

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.


Ubuntu
  1. Erhalten Sie die Meldung „hdio_get_identity Failed“, wenn Sie mit einer externen USB-Festplatte booten?

  2. Wie ändere ich die Dateizuordnung für in Dolphin geöffnete Dateien über die Befehlszeile in Gnome?

  3. Möglichkeit der Wiederherstellung von Dateien von einer mit Dd-Null gefüllten Festplatte?

  4. So installieren Sie Ubuntu auf einer externen Festplatte

  5. Wie entferne ich Dateien aus dem Papierkorb unter Ubuntu?

So suchen Sie Dateien im Terminal unter Linux

Daten von einer Fat32-Festplatte wiederherstellen?

Dual-Boot-Computer bootet nicht ohne externe Festplatte?

Wie wird die externe Festplatte automatisch gemountet?

Wiederherstellen von Daten von der Festplatte nach einer versehentlichen Neuinstallation von Ubuntu?

So übertragen Sie Dateien von Ubuntu auf das Ipad Air 4 mit einem USB-Flash-Laufwerk