Thư mục không thể xóa được trong mất + tìm thấy


10

Làm thế nào tôi có thể xóa thư mục này? Tôi đã làm fsckvà nó đã tìm thấy một số rác, tôi đã xem qua các tập tin này và không có gì quan trọng. Vì vậy, tôi đã cố gắng xóa nội dung /lost+foundvà mọi thứ đã biến mất ngoại trừ thư mục lạ này. Tôi nghĩ rằng việc đặt nó vào /tmp(tôi có thể di chuyển thư mục đó qua âm lượng) sẽ xóa nó trong lần khởi động lại tiếp theo nhưng nó vẫn ở đó sau khi cả hai khởi động lại và khác fsck.

Vì có vẻ như vấn đề ở cấp độ thấp và chơi với quyền sở hữu và quyền là không đủ, tôi đã khiến bạn có thể tự tái tạo vấn đề. Thưởng thức!

  • Điều này là an toàn, bạn sẽ có thể đánh dấu hình ảnh để thoát khỏi các thư mục này trên máy của bạn ;
  • Đây không phải là hình ảnh iso, đây là kết quả củadd if=/dev/sda1 of=/files/broken.iso ;

Tôi đã tạo một kho lưu trữ 15 MB với hình ảnh ~ 1,2 GB. Bạn có thể tải xuống và xếp lớp với nó bằng các lệnh sau:

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

Sẽ có hai thư mục (Trong quá trình tạo hình ảnh đó, có vẻ như có hai thư mục như vậy trên đĩa của tôi):

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

4 directories, 0 files

Chúc may mắn với việc loại bỏ hai thư mục này:

/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

Làm thế nào là /tmptrên cùng một khối lượng? Bạn có thể gửi đầu ra của df? Ngoài ra, xin vui lòng gửi đầu ra của sudo perl -MFile::Path -e 'rmtree("/tmp/foo") || die "$!"'chỉ trong trường hợp chúng tôi nhận được một thông báo lỗi thông tin hơn.
terdon

@terdon Tôi đã thêm đầu ra cho câu hỏi. Bạn có nghĩ rằng đầu ra thậm chí là một chút hữu ích?
Đau buồn

1
Chà, dfđầu ra cho chúng ta thấy rằng / tmp` của bạn thực sự là một thư mục bình thường /và không phải là một tmpfs là thiết lập mặc định. Điều đó thật đáng ngạc nhiên, nhưng giải thích cả lý do tại sao bạn có thể sao chép thư mục /tmpvà lý do tại sao nó sống sót. Đầu perlra không thực sự thêm nhiều, không, nhưng nó đáng để thử. Tôi đang bám vào ống hút ở đây.
terdon

offtopic: trong Ubuntu /tmplà một thư mục bình thường theo mặc định. Điều này được thực hiện để ngăn chặn việc lấp đầy nó tới 100% và để tiết kiệm RAM. Nó được làm sạch trong quá trình khởi động. Hành vi này tồn tại trong một thời gian dài.
Đau buồn

Tôi sẽ thử khởi động một livecd, sau đó chọc vào hệ thống tập tin.
Journeyman Geek

Câu trả lời:


8

Một khả năng là cờ bất biến trong trường hợp hệ thống tập tin ext. Xem đầu ra của lsattrlệnh. Nếu có i, nó có thể được gỡ bỏ bằngchattr -i filename

Không thể sửa đổi tệp có thuộc tính 'i': không thể xóa hoặc đổi tên, không thể tạo liên kết đến tệp này và không có dữ liệu nào có thể được ghi vào tệp. Chỉ có siêu người dùng hoặc một quá trình sở hữu khả năng CAP_LINUX_IMMUTABLE mới có thể đặt hoặc xóa thuộc tính này.

Trong trường hợp này, có một cái gì đó khác xảy ra

Điều này dường như làm việc,

> 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

Không. Bạn có thấy rằng tôi đã sử dụng sudo? Tôi sẽ đánh giá cao nếu bạn tải xuống hình ảnh, gắn kết nó và tự mình thử.
Đau buồn

Đây không phải là một "hình ảnh iso" mà đây là kết quả củadd if=/dev/sda1 of=broken.iso
Nỗi buồn

Vâng, bạn có thể đúng, xin lỗi! Bạn đã có cơ hội để tái tạo vấn đề?
Đau buồn

1
Vâng, và nó trông thực sự kỳ lạ.
JJ Hakala

Tôi cảm thấy sooo ngu ngốc tại :( Nhưng bạn là anh hùng của tôi trong ngày, mr JJ Hakala.
Đau khổ

1

hãy thử trở thành người dùng sở hữu nó để xóa nó

sudo -u 6666 -g 19312 rm -rf ./#1589030

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
Đau buồn

Bạn cần phải tạo hơn người dùng nếu nó không tồn tại
Amias

tạo người dùng và nhóm với các UID và GID này không giúp được gì
Grief
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.