파일이 있지만 시스템이 없다고 말하는 파일을 어떻게 삭제합니까?
파일이 있지만 시스템이 없다고 말하는 파일을 어떻게 삭제합니까?
답변:
경고 :이 지침은을 사용해야
debugfs
합니다. 그들은 데이터가 손실 될 수 있습니다.원래 문제에 맞게 조정되었으며이 페이지의 향후 방문자에게 정확하거나 정확하지 않을 수 있습니다. 데이터 손실은 복구 할 수 없거나에 의해 악화 될 수 있습니다
fsck
.
손실 된 inode 일 수 있습니다. ls -li
inode 번호 목록을 얻기 위해 실행 한 다음 참조 된 inode를 덤프 할 수 있습니다. 예를 들어, ls -li
다음과 같은 경우 :
rarkenin@ubuntu-alt-64-vbox-1:~$ ls -li
total 58672
4980758 -rwxr-xr-x 2 rarkenin rarkenin 4096 Sep 23 18:45 panorama.jpg
---SNIP---
목록에 첫 번째 열로 표시된대로 inode 번호는 4980758입니다.
그런 다음 inode를 덤프 할 수 있습니다. 무엇이든 하기 전에 전체 게시물을 읽으십시오 .
debugfs
루트로 시작하십시오 .
rarkenin@ubuntu-alt-64-vbox-1:~$ sudo debugfs
[sudo] password for rarkenin:
debugfs 1.42 (29-Nov-2011)
debugfs:
open /dev/sda1
파티션에 맞는 올바른 블록 장치를 사용하여 명령 을 내립니다.
그런 다음, 번호를 이전에 얻은 inode를 덤프하도록 명령을 제공하십시오.
cat <4980758>
사용 <
및 >
inode 번호 주위.
임의의 텍스트를 읽는 경우 터미널을 닫고 다시여십시오. debugfs
다시 실행 하고 open
명령을 다시 제공 하십시오.
이제 파일 삭제를 시도 할 수 있습니다. 파일 시스템이 심각하게 손상 될 수 있습니다.
debugfs: rm [filename]
debugfs: unlink [filename]
debugfs: kill_file [filename]
debugfs: kill_file <inode>
파일에 inode가없는 것으로 판명 된 경우에도이 작업을 수행 할 수 있습니다. 위에 표시된 순서대로 한 번에 하나씩 명령을 시도하십시오. debugfs를 종료하고 파일이 존재하는지 확인하십시오. 그렇지 않으면 다시 시작하지만 다음 지시를 따르십시오.
debugfs
는 ext2, ext3 및 ext4 파일 시스템 유형에만 사용됩니다.
먼저 루트로 로그인하십시오 sudo -s
rm -v <file>
파일을 제거하는 동안 무슨 일이 일어나고 있는지 확인하기 위해 자세한 출력을 살펴볼 수 있습니다 . 아래 명령에 대한 옵션을 확인하십시오.
이것이 실패하면 다른 사람들이 말한 것처럼 강제 옵션을 사용할 수 있습니다. 재귀 제거를 수행하여 전체 디렉토리를 제거 할 수도 있습니다.rm -rfv **full directory address here**
로부터 UNIX 명령 가이드 :
개요
rm [OPTION]... FILE...
기술
rm removes each file. By default, it does not remove directories.
If a file is unwritable, the standard input is a tty, and the -f or
--force option is not given, rm prompts the user for whether to remove
the file. If the response is not affirmative, the file is skipped.
옵션
Remove (unlink) the FILE(s).
-f, --force
ignore nonexistent files, never prompt
-i, --interactive
prompt before any removal
--no-preserve-root do not treat '/' specially (the default)
--preserve-root
fail to operate recursively on '/'
-r, -R, --recursive
remove directories and their contents recursively
-v, --verbose
explain what is being done
--help display this help and exit
--version
output version information and exit
By default, rm does not remove directories. Use the --recursive (-r or
-R) option to remove each listed directory, too, along with all of its
contents.
To remove a file whose name starts with a '-', for example '-foo', use
one of these commands:
rm -- -foo
rm ./-foo
Note that if you use rm to remove a file, it is usually possible to
recover the contents of that file. If you want more assurance that the
contents are truly unrecoverable, consider using shred.
파일 이름에 인쇄하지 않는 문자는 공백과 같은 문제를 일으킬 수 있습니다. rm의 대화식 옵션을 시도하고 삭제하려는 파일에 'Y'라고 말하십시오. "
rm -i"* pan * "* s를 사용하여 (프린트되지 않은) 문자와도 일치합니다.
inode는 ls -i를 사용하여 inode를 확인하십시오 파일 시스템을 fsck하여 이러한 종류의 문제를 해결하십시오.
이 방법으로 시도하십시오 :
cd dir-to-delete
find ./ -exec rm -rf {} \;
크롬에서 사용자 정의 웹베이스 EMR (전자 의료 기록)으로 만든 파일과 동일한 문제가있었습니다. sudo touch /forcefsck
그 후 다시 시작하면 저를 위해 일했고 아로마 파일을 삭제했습니다. 다음 페이지에 나오는 도움말 양식