File dari hard drive eksternal saya tidak lagi diindeks setelah reboot. Saya harus me-remount dan kemudian menjalankan
# updatedb
setelah setiap reboot. Masalahnya diperbaruib membutuhkan beberapa menit untuk hard drive eksternal saya. Apakah ada cara saya dapat mempertahankan pengindeksan untuk eksternal saya setelah saya reboot sehingga perintah locate dapat mencari melalui eksternal saya?
EDIT:Per Permintaan, inilah spesifikasi saya:
$ 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
Jawaban Terbaik
File dari harddisk eksternal Anda tidak diindeks karena updatedb
dikonfigurasi untuk tidak mengindeks apa pun di bawah /media
, yang merupakan tempat penyimpanan eksternal biasanya dipasang. Konfigurasi ini diatur dalam file /etc/updatedb.conf
. Khususnya entri /media
di PRUNEPATHS
baris.
Beberapa ide bagaimana Anda dapat membuat updatedb
untuk mengindeks drive eksternal Anda:
1. Pasang drive eksternal di bawah /mnt
.
Jika harddisk eksternal Anda seharusnya dipasang secara permanen maka saya sarankan untuk mengkonfigurasinya agar terpasang di bawah /mnt
alih-alih di bawah /media
. Itu biasanya dapat dilakukan dengan mengedit /etc/fstab
. Cari "fstab" untuk mempelajarinya. Anda memerlukan hak sudo untuk mengedit /etc/fstab
.
2. Buat database khusus untuk harddisk eksternal Anda dan buat kueri sesuai permintaan.
Perintah berikut akan membuat database khusus:
updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk
Ini akan membuat database di file tersembunyi .externalharddisk.db
di rumah Anda. Anda tidak perlu sudo
untuk perintah itu. Jalankan perintah yang sama lagi untuk menjaga database diperbarui. Hati-hati:jika Anda menjalankan perintah itu saat harddisk eksternal tidak terpasang maka updatedb
akan mengira file-file tersebut dihapus dan akan mengosongkan database.
Anda dapat mengatur skrip untuk mengotomatiskan tugas itu. Cari "cronjob" untuk mempelajari cara melakukannya. Catatan:Anda dapat mengatur cronjob pengguna sebagai pengguna. Anda tidak memerlukan hak sudo untuk menyiapkan cronjob pengguna.
Terkait:Bagaimana cara mengaktifkan kembali Unity WebApps di Ubuntu 13.04?Perintah berikut akan menanyakan database:
locate -d ~/.externalharddisk.db searchterm
Anda juga dapat menanyakan database khusus dan database default secara bersamaan:
locate -d ~/.externalharddisk.db: searchterm
Titik dua di akhir diikuti oleh apa-apa berarti juga mencari di database default.
Anda dapat membuat alias agar lebih mudah digunakan. Letakkan baris berikut di .bashrc
. Anda :
alias locate-external='locate -d ~/.externalharddisk.db:'
Sekarang Anda dapat menggunakan locate
untuk hanya mencari database default dan locate-external
untuk juga mencari di harddisk eksternal Anda.
3. Hapus /media
dari PRUNEPATHS
Catatan:Saya tidak menyarankan ini ! Ini karena cara updatedb
bekerja. Jika updatedb
berjalan saat harddisk eksternal dihapus maka semua entri yang mengarah ke harddisk eksternal akan dihapus dari database. Jika updatedb
berjalan saat harddisk eksternal terhubung maka entri yang menunjuk ke harddisk eksternal akan ditambahkan lagi. Sejak updatedb
berjalan secara teratur di latar belakang Anda tidak akan pernah bisa memastikan apakah file dari harddisk eksternal sedang diindeks atau tidak.
Selanjutnya:jika Anda menghapus /media
dari PRUNEPATHS
, perilaku ini juga akan berlaku untuk penyimpanan eksternal lain yang kebetulan telah Anda pasang saat updatedb
sedang memperbarui database.