GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Problème de commande Updatedb &Locate – Les fichiers du disque dur externe ne sont plus indexés après le redémarrage ?

Les fichiers de mon disque dur externe ne sont plus indexés après le redémarrage. Je dois remonter puis courir

# updatedb

après chaque redémarrage. Le problème est mis à jour et prend quelques minutes pour mes disques durs externes. Existe-t-il un moyen de conserver l'indexation de mes externes après le redémarrage afin que la commande de localisation puisse rechercher dans mes externes ?

EDIT :par demande, voici mes spécifications :

$ 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

Meilleure réponse

Les fichiers de votre disque dur externe ne sont pas indexés car updatedb est configuré pour ne rien indexer sous /media , où le stockage externe est généralement monté. Cette configuration est définie dans le fichier /etc/updatedb.conf . Plus précisément l'entrée /media dans le PRUNEPATHS ligne.

Quelques idées sur la façon dont vous pouvez faire updatedb pour indexer votre disque externe :

1. Montez le lecteur externe sous /mnt .

Si votre disque dur externe est censé être monté en permanence alors je suggère de le configurer pour qu'il soit monté sous /mnt au lieu de sous /media . Cela peut généralement être fait en éditant /etc/fstab . Recherchez "fstab" pour en savoir plus. Vous aurez besoin des droits sudo pour modifier /etc/fstab .

2. Créez une base de données dédiée pour votre disque dur externe et interrogez-la à la demande.

La commande suivante créera une base de données dédiée :

updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk

Cela créera la base de données dans le fichier caché .externalharddisk.db dans votre maison. Vous n'avez pas besoin de sudo pour cette commande. Exécutez à nouveau la même commande pour maintenir la base de données à jour. Attention :si vous exécutez cette commande alors que le disque dur externe n'est pas monté, alors updatedb pensera que les fichiers sont supprimés et videra la base de données.

Vous pouvez configurer un script pour automatiser cette tâche. Recherchez « cronjob » pour savoir comment procéder. Remarque :vous pouvez configurer un cronjob utilisateur en tant qu'utilisateur. Vous n'avez pas besoin des droits sudo pour configurer une tâche cron utilisateur.

Connexe :Comment réactiver Unity WebApps dans Ubuntu 13.04 ?

La commande suivante interrogera la base de données :

locate -d ~/.externalharddisk.db searchterm

Vous pouvez également interroger la base de données dédiée et la base de données par défaut en même temps :

locate -d ~/.externalharddisk.db: searchterm

Les deux-points à la fin suivis de rien signifient également rechercher dans la base de données par défaut.

Vous pouvez créer un alias pour une utilisation plus facile. Mettez la ligne suivante dans votre .bashrc :

alias locate-external='locate -d ~/.externalharddisk.db:'

Vous pouvez maintenant utiliser locate pour rechercher uniquement la base de données par défaut et locate-external pour rechercher également dans votre disque dur externe.

3. Supprimer /media de PRUNEPATHS

Remarque :Je ne le recommande pas ! C'est à cause de la façon dont updatedb œuvres. Si updatedb s'exécute alors que le disque dur externe est supprimé, toutes les entrées pointant vers le disque dur externe seront supprimées de la base de données. Si updatedb s'exécute alors que le disque dur externe est connecté, les entrées pointant vers le disque dur externe seront à nouveau ajoutées. Depuis updatedb s'exécute régulièrement en arrière-plan, vous ne pouvez jamais être sûr que les fichiers du disque dur externe sont actuellement indexés ou non.

De plus :si vous supprimez /media de PRUNEPATHS , ce comportement s'appliquera également à tout autre stockage externe que vous avez monté pendant que updatedb met à jour la base de données.


Ubuntu
  1. Comment utiliser Btrfs avec compression sur disque dur USB externe ?

  2. Comment modifier l'association de fichiers pour les fichiers ouverts dans Dolphin à partir de la ligne de commande dans Gnome ?

  3. Comment installer un disque dur externe ?

  4. Comment changer l'autorisation du disque dur externe dans Ubuntu 12.04 ?

  5. Coût de performance de l'exécution d'Ubuntu à partir d'un disque dur externe ?

Comment rechercher des fichiers à partir du terminal sous Linux

L'ordinateur à double démarrage ne démarre pas sans disque dur externe ?

Comment transférer des fichiers d'Ubuntu vers Ipad Air 4 avec une clé USB

Comment installer Ubuntu sur un disque dur externe

Comment supprimer des fichiers de la corbeille sur Ubuntu ?

Du nom du périphérique df au nom du lecteur physique (fournisseur / type)