Direktori terhapus dalam + hilang ditemukan

10

Bagaimana saya bisa menghapus direktori ini? Saya lakukan fsckdan telah menemukan beberapa sampah, saya melihat-lihat file-file ini dan tidak ada sesuatu yang penting. Jadi saya sudah mencoba menghapus isi /lost+founddan semuanya sudah hilang kecuali direktori aneh ini. Saya pikir memasukkannya ke /tmp(saya bisa memindahkan dir itu di volume) akan menghapusnya pada reboot berikutnya tetapi masih ada setelah kedua reboot dan yang lain fsck.

Karena sepertinya masalahnya adalah level rendah dan bermain dengan kepemilikan dan izin tidak cukup, saya telah membuat Anda dapat mereproduksi masalah sendiri. Nikmati!

  • Ini aman, Anda akan dapat mengambil gambar untuk menyingkirkan direktori ini di mesin Anda ;
  • Ini bukan iso-image, ini adalah hasil daridd if=/dev/sda1 of=/files/broken.iso ;

Saya telah membuat arsip 15MB dengan gambar yang ~ 1.2GB. Anda dapat mengunduh dan menggunakannya dengan perintah berikut:

cd /tmp
wget https://dl.dropboxusercontent.com/u/22701362/broken.tar.xz
tar xvf broken.tar.xz
mkdir test
sudo mount broken.iso test
cd test

Akan ada dua direktori (Selama pembuatan gambar itu tampaknya ada dua direktori seperti itu di disk saya):

/tmp/test> tree
.
├── 1
│   └── plexus-component-annotations-1.5.5.jar.sha1 [error opening dir]
└── 2
    └── #1589030 [error opening dir]

4 directories, 0 files

Semoga sukses dengan menghapus dua direktori ini:

/tmp/test> sudo rm -rf *
rm: cannot remove '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
rm: cannot remove '2/#1589030': Operation not permitted

/tmp/test> sudo chown -R root:root *
chown: changing ownership of '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
chown: cannot read directory '2/#1589030': Permission denied

/tmp/test> sudo chmod -R 777 *
chmod: changing permissions of '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
chmod: changing permissions of '2/#1589030': Operation not permitted
chmod: cannot read directory '2/#1589030': Permission denied
Kesedihan
sumber
Bagaimana /tmpdengan volume yang sama? Bisakah Anda memposting output df? Juga, silakan posting output sudo perl -MFile::Path -e 'rmtree("/tmp/foo") || die "$!"'kalau-kalau kita mendapatkan pesan kesalahan yang lebih informatif.
terdon
@terdon Saya telah menambahkan output ke pertanyaan. Apakah Anda pikir outputnya bahkan sedikit membantu?
Duka
1
Nah, dfhasilnya menunjukkan kepada kita bahwa / tmp` Anda sebenarnya adalah direktori normal /dan bukan tmpfs yang merupakan pengaturan default. Itu mengejutkan, tetapi menjelaskan mengapa Anda bisa menyalin dir /tmpdan mengapa ia bertahan reboot. The perlkeluaran tidak benar-benar menambah banyak, tidak ada, tapi itu layak dicoba. Saya mencengkeram sedotan di sini.
terdon
offtopic: di Ubuntu /tmpadalah direktori normal secara default. Hal ini dilakukan untuk mencegah pengisian hingga 100% dan menghemat RAM. Itu dibersihkan selama startup. Perilaku ini ada untuk waktu yang lama.
Duka
Saya akan mencoba mem-boot sebuah livecd, kemudian melihat-lihat filesystem.
Journeyman Geek

Jawaban:

8

Salah satu kemungkinan adalah flag yang tidak berubah dalam kasus sistem file ext. Lihat output dari lsattrperintah. Jika ada i, dapat dihapus denganchattr -i filename

File dengan atribut 'i' tidak dapat dimodifikasi: tidak dapat dihapus atau diganti namanya, tidak ada tautan yang dapat dibuat ke file ini dan tidak ada data yang dapat ditulis ke file. Hanya superuser atau proses yang memiliki kemampuan CAP_LINUX_IMMUTABLE yang dapat mengatur atau menghapus atribut ini.

Dalam hal ini, ada hal lain yang terjadi

Ini sepertinya berhasil,

> lsattr 1
-----a---------- 1/plexus-component-annotations-1.5.5.jar.sha1
> rmdir 1/plexus-component-annotations-1.5.5.jar.sha1
rmdir: failed to remove '1/plexus-component-annotations-1.5.5.jar.sha1': Operation not permitted
> chattr -a 1/plexus-component-annotations-1.5.5.jar.sha1
> rmdir 1/plexus-component-annotations-1.5.5.jar.sha1

> lsattr 2
---D-ad--j--T--- 2/#1589030 
> chattr -D -a -d -j -T 2/\#1589030
> rmdir 2/\#1589030
JJ Hakala
sumber
Nggak. Apakah Anda melihat bahwa saya menggunakan sudo? Saya akan sangat menghargai jika Anda mengunduh gambar, pasang dan coba sendiri.
Duka
Ini bukan 'gambar iso' ini hasil daridd if=/dev/sda1 of=broken.iso
Duka
Ya, Anda mungkin benar, maaf! Apakah Anda memiliki kesempatan untuk mereproduksi masalah ini?
Duka
1
Ya, dan itu terlihat sangat aneh.
JJ Hakala
Saya merasa sangat bodoh sekarang :( Tapi Anda adalah pahlawan saya hari ini, tuan. JJ Hakala
Duka
1

cobalah menjadi pengguna yang memilikinya untuk menghapusnya

sudo -u 6666 -g 19312 rm -rf ./#1589030
Amias
sumber
sudo -u '#6666' -g '#19311' rm -rf \#1589030 rm: cannot remove '#1589030': Permission denied sudo -u '#6666' -g '#19311' chmod 777 \#1589030 chmod: cannot access '#1589030': Permission denied
Duka
Anda harus membuat daripada pengguna jika tidak ada
Amias
membuat pengguna dan grup dengan UID dan GID ini tidak membantu
Bersedih