Apa yang terjadi jika saya menghapus hilang + ditemukan

38

Ketika Anda membuat beberapa sistem file Linux seperti ext3, direktori 'lost + found' dibuat. Menurutnya file-file ini akan ditempatkan di sana jika file-file itu rusak karena semacam crash sistem.

Apa yang terjadi jika direktori ini dihapus, dan sistem macet. Jika folder tersebut dihapus, saya hanya dapat membuat direktori baru dengan mkdir hilang + ditemukan atau ada atribut yang hanya dapat ditetapkan ketika filesystem sedang dibuat.

Sakit kepala
sumber

Jawaban:

35

fsck akan membuat ulang direktori yang hilang + ditemukan jika tidak ada.

Pada startup, sebagian besar distribusi menjalankan fsck jika sistem file terdeteksi tidak di-unmount dengan bersih. Ketika fsck membuat direktori yang hilang + ditemukan jika tidak ada, ia akan membuatnya kemudian dan meletakkan apa pun yang ditemukannya ke direktori itu.

Dave Cheney
sumber
15

Jika Anda tidak dapat atau tidak ingin menjalankan fsck, Anda dapat membuat ulang lost+founddirektori dengan mklost+found:

mklost + found telah mengalokasikan blok-blok disk ke direktori yang hilang + ditemukan sehingga ketika e2fsck (8) dijalankan untuk memulihkan sistem file, ia tidak perlu mengalokasikan blok-blok di sistem file untuk menyimpan sejumlah besar file yang tidak terhubung. Ini memastikan bahwa e2fsck tidak perlu mengalokasikan blok data dalam sistem file selama pemulihan.

Andrew
sumber
Di RHEL 6.4 atau di mana fsckpun e2fsckmembuat kembali ini untuk saya, tidak peduli apakah direktori itu dipasang atau tidak. cd <root-dir-of-the-mount> && mklost+foundmelakukannya.
Luis Antolín Cano
7

Direktori lost + found yang sudah ada sebelumnya dengan ukuran yang cukup besar untuk menampung banyak file yang tidak ditautkan membuat beban e2fsck lebih sedikit untuk membuat direktori dan menumbuhkannya ke ukuran yang sesuai.

Itu masih akan berusaha untuk melakukannya, tetapi dalam menghadapi sistem file yang korup, itu bisa lebih berisiko.

Fsck yang sangat lama untuk sistem file lain pada platform lain tidak dapat membuat / kehilangan + ditemukan, mereka juga tidak dapat menumbuhkannya. Ini adalah sejarah untuk alasan / lost + found. Tetapi alasan saat ini hanyalah untuk membuat pekerjaan e2fsck lebih mudah.

carlito
sumber
4
Bukannya mereka tidak dapat membuat + yang hilang - itu adalah ide yang buruk untuk membuat file / direktori pada sistem file yang sudah kacau. Sebagai gantinya, Anda hanya membuat ulang sebuah direktori yang sudah cukup besar untuk menyimpan entri direktori dari setiap inode yang dikunyah yang Anda temukan dalam sistem file yang kacau saat Anda mencoba untuk membersihkannya.
chris
5

Jika Anda tidak punya lost+found, e2fsck(Saya belum memeriksa kode untuk fsckimplementasi lain ) akan menawarkan untuk membuatnya untuk Anda. Tetapi, Anda dapat membuatnya kembali sendiri jika Anda mau; tidak ada yang khusus tentang direktori itu (setidaknya tidak dari memeriksa kode).

Chris Jester-Young
sumber
2
fsck harus membuat ulang yang hilang + ditemukan jika diperlukan, bukan?
David Schmitt
2
Terima kasih, saya telah memeriksa kode untuk e2fsck dan memang menawarkan untuk membuatnya kembali untuk Anda. (Namun ini tidak dijamin akan berhasil --- itulah sebabnya + yang hilang yang ditemukan sebelumnya juga berguna.) Rapi!
Chris Jester-Young
6
@ ChrisJester-Young - Jawaban Anda salah. lost+foundadalah direktori khusus. Ini memiliki blok disk yang dialokasikan sebelumnya sehingga alat pemulihan tidak perlu mengalokasikan blok selama pemulihan. Alat seperti mklost+foundada secara khusus karena mkdirtidak akan membuatnya dengan benar. Lihat linux.die.net/man/8/mklost+found
aggregate1166877
2

e2fsck akan membuat ulang yang hilang + ditemukan, dan juga akan memusnahkan file apa pun yang mungkin ada di jalan dengan nama yang sama untuk memastikan itu dapat membuatnya sebagai direktori.

Perhatikan bahwa banyak sistem file Unix yang lama menuntut agar hilang + ditemukan dilampirkan ke inode nomor 2 secara khusus, maka dari itu kebutuhan untuk membuat ulang sistem file dalam banyak kasus jika direktori hilang. e2fsck hanya melakukan pencarian untuk inode gratis, tampaknya tidak secara spesifik membutuhkan inode 2, yang membuat pemulihan jauh lebih sederhana daripada masa lalu.

Alex North-Keys
sumber
1

Anda dapat membuat direktori itu hanya menggunakan mkdir. Itu harus dimiliki oleh root, dengan sekelompok root atau roda. Selain itu tidak ada sesuatu yang khusus tentang itu. Dalam hal terjadi kegagalan daya atau pemadaman yang tidak tepat ketika sistem melakukan booting, sistem akan secara otomatis meluncurkan fsck. fsck akan melalui sistem dan mencoba memulihkan file yang rusak yang ditemukannya. File apa pun yang berpotensi rusak akan dipindahkan ke sana.

Kasus lain untuk file yang akan dipindahkan adalah jika fsck menemukan file yang inode induknya tidak ada. Ini biasanya terjadi jika blok rusak pada disk di lokasi tertentu di mana inode folder sedang disimpan. Ini akan menugaskan kembali inode induknya menjadi folder yang hilang + ditemukan.

Sunting: Saya tidak yakin apakah case terakhir akan membuat ulang direktori. Saya akan membiarkannya sendirian di sisi yang aman. Saya tidak bisa memikirkan alasan untuk menghapusnya. Tidak ada hal buruk yang akan terjadi tanpanya.

TrueDuality
sumber
1
Apakah Anda yakin tidak masalah untuk membuatnya mkdir?
Ya, alokasi ruang tidak terikat dengan inode direktori atau bahkan path. Alokasi ruang yang dicadangkan lebih merupakan tanda pada beberapa memori yang memerlukan hak akses root / kernel dan panggilan khusus untuk mengakses yang diketahui oleh fsck, hanya memanfaatkan ruang itu dengan menyalin file yang berpotensi rusak atau rusak ke dalam memori itu dan membuat file dengan inode yang menunjuk ke memori baru. Operasi file akan berlaku normal pada file-file itu tetapi setiap perubahan seperti memindahkan atau menyimpan akan menarik data keluar dari memori yang dipesan.
TrueDuality
1

Selain itu, pada Debian 6 dan Ubuntu 12 LTS, cronpaket dikirimkan dengan /etc/cron.daily/standardpemberitahuan lost+founddirektori yang hilang pada sistem file lokal dan mengirimkan pengingat harian tentang hal itu melalui email, merekomendasikan penggunaan mklost+found.

Namun, ini telah dihapus pada saat Debian 7 dan Ubuntu 14 LTS, masing-masing, karena telah menjadi usang.

Josip Rodin
sumber