Artikel ini menyediakan sebuah penjelasan mendetail tentang cara menemukan, menghapus, dan melakukan recovery file yang terhapus dengan lsof.
Pada saat kehabisan ruang disk, Anda seringkali melakukan pencarian di sistem berkas komputer Linux Anda untuk menemukan sejumlah file tertentu yang tidak lagi dibutuhkan dan menghapusnya. Sayangnya, penghapusan file mungkin tidak berhasil jika terdapat proses aktif yang mengacu ke file tersebut. Dalam situasi seperti ini, Anda dapat menghentikan setiap proses yang mempertahankan sebuah referensi terbuka sebelum menghapus file tersebut.
Namun, hal ini juga dapat menjadi masalah. Misalnya, beberapa program tidak boleh dihentikan selama jam kerja. Sebagai solusinya, artikel ini akan memberikan sebuah tutorial komprehensif yang mencakup semua langkah yang diperlukan untuk membantu Anda menemukan, menghapus, dan melakukan recovery file yang terhapus dengan lsof.
Perintah lsof di sistem Unix dan Linux adalah singkatan dari "List Open Files". Ini adalah alat yang ampuh untuk melaporkan informasi tentang file yang terbuka oleh proses aktif pada sebuah sistem. Perintah lsof menyediakan informasi tentang file terbuka yang digunakan oleh proses, seperti soket jaringan, file reguler, direktori, block special file, dan character special file.
lsof [options]
Opsi yang digunakan bersama perintah lsof menentukan informasi yang akan ditampilkan dan format yang akan digunakan untuk menampilkannya.
Perintah lsof memiliki beragam pilihan, dan tabel di bawah ini mencantumkan argumen yang paling sering digunakan.
Mari kita pahami konsepnya terlebih dahulu. Sebuah file Linux ditautkan ke sebuah inode, yang memuat semua properti blok data yang dimiliki file itu pada disk yang berisi konten file tersebut. Ketika Anda menghapus sebuah file, Anda akan menghapus tautan ke inode-nya, tetapi tidak menghapus inode itu sendiri; proses lain masih tetap menggunakannya. Hanya setelah prosesnya selesai, dan semua tautan telah dihapus, barulah sebuah inode dan blok data yang ditunjuknya dapat digunakan untuk menulis.
Bahkan ketika file tersebut terlihat menghilang dari daftar direktori, datanya berada di tempat lain jika sebuah proses masih membukanya.
Direktori /proc akan berperan dalam pseudo-filesystem proses Linux. Setiap proses pada sistemnya memiliki direktori serta nama tersendiri, yang terdiri dari berbagai hal, termasuk sebuah subdirektori fd (file descriptor) dengan tautan ke semua file yang dibuka oleh proses tersebut. Walaupun sebuah file telah dihapus dari sistem berkasnya, salinan datanya tetap ada:
Langkah ke-1. Untuk menentukan tujuan Anda, dapatkan Process ID dan file descriptor dari proses yang membuka file tersebut dengan menggunakan lsof. Setelah Anda mendapatkan informasinya dari lsof, salin data tersebut dari /proc.
$ man lsof | col -b > myfile
Langkah ke-2. Kemudian periksa konten dari file yang baru saja Anda buat:
$ less myfile
Langkah ke-3. Untuk menghentikan perintah less, tekan Ctrl-Z.
$ ls -l myfile-rw-r--r-- 1 jimbo jimbo 114383 Oct 31 16:14 myfile$ stat myfile File: `myfile' Size: 114383 Blocks: 232 IO Block: 4096 regular fileDevice: 341h/833d Inode: 1276722 Links: 1Access: (0644/-rw-r--r--) Uid: ( 1010/ jimbo) Gid: ( 1010/ jimbo)Access: 2006-10-31 16:15:08.423715488 -0400Modify: 2006-10-31 16:14:52.684417746 -0400Change: 2006-10-31 16:14:52.684417746 -0400
Langkah ke-4. Silakan menghapusnya.
$ rm myfile$ ls -l myfilels: myfile: No such file or directory$ stat myfilestat: cannot stat `myfile': No such file or directory$
Pada titik ini, Anda tidak boleh mengizinkan prosesnya untuk melanjutkan penggunaan file Anda untuk keluar, karena itu akan mengakibatkan file tersebut hilang selamanya.
Setelah menemukan dan menyingkirkan file terbuka yang telah dihapus, sekarang Anda akan memulihkannya dengan lsof. Jika sebuah file telah dihapus tetapi masih terbuka oleh sebuah proses, lsof dapat menampilkan informasi tentang file tersebut, termasuk file descriptor, Process ID, dan jalur lengkapnya.
Langkah ke-1. Lihatlah apa yang dikatakan lsof tentang file tersebut:
$ lsof | grep myfileless 4158 jimbo 4r REG 3,65 114383 1276722 /home/jimbo/myfile (deleted)
Kolom pertama menunjukkan nama perintah yang terkait dengan prosesnya, kolom kedua berisi Process ID, dan kolom keempat memuat file descriptor file tersebut ("r" mengindikasikan bahwa itu adalah sebuah file reguler). Anda tahu bahwa proses 4158 yang memiliki file terbuka tersebut dan file descriptornya adalah 4. Hanya itu yang perlu Anda ketahui untuk menyalinnya dari /proc.
Langkah ke-2. Karena Anda sedang melakukan recovery file, Anda mungkin berpikir bahwa menggunakan flag -a dengan cp adalah hal yang tepat untuk dilakukan - tetapi itu BUKAN sebuah hal yang baik untuk dilaksanakan.
$ ls -l /proc/4158/fd/4lr-x------ 1 jimbo jimbo 64 Oct 31 16:18 /proc/4158/fd/4 -> /home/jimbo/myfile (deleted)$ cp -a /proc/4158/fd/4 myfile.wrong$ ls -l myfile.wronglrwxr-xr-x 1 jimbo jimbo 24 Oct 31 16:22 myfile.wrong -> /home/jimbo/myfile (deleted)$ file myfile.wrongmyfile.wrong: broken symbolic link to `/home/jimbo/myfile (deleted)'$ file /proc/4158/fd/4/proc/4158/fd/4: broken symbolic link to `/home/jimbo/myfile (deleted)'
$ cp /proc/4158/fd/4 myfile.saved
$ ls -l myfile.saved-rw-r--r-- 1 jimbo jimbo 114383 Oct 31 16:25 myfile.saved$ man lsof | col -b > myfile.new$ cmp myfile.saved myfile.new
Jika Anda sedang mencari sebuah alternatif lsof yang ramah pengguna untuk melakukan recovery file yang terhapus, pertimbangkan untuk menggunakan software Linux file recovery seperti Wondershare Recoverit. Tidak seperti lsof yang merupakan sebuah alat baris perintah, Recoverit memiliki antarmuka pengguna grafis (GUI) yang sederhana, sehingga membuatnya mudah digunakan, bahkan untuk orang yang memiliki sedikit atau tidak sama sekali pengalaman teknis. Dengan Recoverit, Anda dapat dengan cepat memindai hard drive komputer dan melakukan recovery file yang terhapus hanya dengan beberapa klik.
5.481.435 orang telah mendownloadnya.
Melakukan recovery dokumen, foto, video, musik, email, dan lebih dari 1000 jenis file lainnya yang hilang atau terhapus secara efektif, aman, dan menyeluruh.
Kompatibel dengan semua distro Linux utama, termasuk Ubuntu, Linux Mint, Debian, Fedora, Solus, openSUSE, Manjaro, dll.
Membantu dalam lebih dari 500 skenario kehilangan data, seperti penghapusan, pemformatan disk, OS yang mengalami crash, pemadaman listrik, serangan virus, partisi yang hilang, dan masih banyak lagi.
Antarmuka tunjuk dan klik yang sederhana memungkinkan Anda untuk melakukan recovery data dari hard drive Linux hanya dalam beberapa klik.
Bekerja melalui sebuah koneksi jarak jauh. Anda dapat melakukan recovery data yang hilang bahkan di saat perangkat Linux Anda mengalami crash.
Kami akan menunjukkan kepada Anda cara menggunakan Wondershare Recoverit di Linux untuk melakukan recovery data yang terhapus. Jika Anda merasa membaca instruksi sulit untuk diikuti, berikut adalah sebuah klip video dengan tutorial yang lebih mendalam untuk Anda tonton.
Untuk Windows Vista/7/8/10/11
Untuk macOS X 10.10 atau versi di atasnya
Langkah ke-1. Recoverit Linux Recovery
Buka software Wondershare Recoverit di perangkat Linux Anda. Kemudian, pilih opsi NAS and Linux di sisi kiri antarmuka utamanya. Untuk melanjutkan, pilih Linux Recovery.
Langkah ke-2. Koneksi Jarak Jauh Linux
Pada jendela baru yang muncul, masukkan informasi yang diperlukan untuk membuat sebuah koneksi jarak jauh. Setelah selesai, klik Connect.
Sementara Anda menunggu koneksi tersebut terhubung, Recoverit akan memulai pencarian otomatis untuk data yang hilang di komputer Linux.
Langkah ke-3. Proses Recovery
Tergantung pada jumlah data yang sedang dipindai, prosedur pemindaian ini mungkin memerlukan sejumlah waktu; status pemindaiannya ditampilkan pada bar di bawah. Fitur terbaik Recoverit adalah kemampuannya untuk menjeda pemindaian setiap kali sebuah file akan dipulihkan.
Ketika proses pemindaian selesai, Recoverit mengizinkan Anda memeriksa file tersebut, untuk memastikan bahwa itu adalah file yang ingin Anda pulihkan. Pilih Recover untuk menyimpan file tersebut ke perangkat Linux Anda.
Software ini akan meminta Anda memilih sebuah lokasi untuk file yang telah dipulihkan tersebut di perangkat Anda. Pastikan Anda memilih sebuah lokasi yang berbeda dari tempat Anda kehilangan file sebelumnya.
"lsof" adalah sebuah utilitas baris perintah yang berguna untuk menampilkan informasi tentang file yang dibuka oleh proses dalam sistem seperti Unix. Bagaimanapun juga, menemukan dan melakukan recovery file yang terbuka tetapi telah dihapus merupakan sebuah proses yang rumit dan membutuhkan tingkat keahlian teknis tertentu. Dalam kasus seperti itu, software file recovery seperti Recoverit dapat menjadi sebuah alternatif yang lebih ramah pengguna, karena ia menyediakan GUI sederhana untuk memindai dan melakukan recovery file yang terhapus dengan cepat.
Berikut ini adalah rincian cara menginstal dan menggunakan alat recovery data TestDisk Linux, beserta alternatifnya.
Berikut ini adalah cara menginstal dan menggunakan Foremost untuk memulihkan data di Linux dan alternatif terbaiknya.