아마도 내가 달성하려는 것을 달성하는 더 좋은 방법이 있을 수 있으므로 전체 문제를 설명하겠습니다. 내 디렉토리 /
와 /home
디렉토리는 별도의 LV에 있습니다. 문제가 발생하여 /
LV에 공간이 부족해졌습니다. 그런 다음 백업 /home
하고 크기를 조정할 수 있도록 삭제해 보았습니다 /
. 그러나 루트 tty에 로그인하여 마운트 해제를 시도하면 /home
논리 lvchange -a n /dev/trixxxy-vg/home
볼륨이 사용 중이라는 메시지가 나타납니다.
Logical volume trixxxy-vg/home contains a filesystem in use.
내 디렉토리 .emacs.d
와 .bashrc
디렉토리는 /root
관련 링크 /home/user/
이므로 문제의 원인이 될 수 있다고 생각했지만 제거한 후에도 아무 것도 변경되지 않았습니다.
현재 특정 논리 볼륨을 사용하고 있는 파일이 무엇인지 확인하는 방법이 있는 것 같습니다. 아니면 그러한 파티션을 제거하기 위해 힘을 사용할 수 있습니까?
답변1
일반적으로 fuser
또는 같은 도구를 사용하여 lsof
현재 사용 중인 파일을 확인할 수 있습니다. 여기에 제가 사용할 예가 있습니다 lsof
.
배경
여기에는 다음과 같은 설정이 있습니다.
$ mount | grep lvm
/dev/mapper/lvm--raid-lvm0 on /export/raid0 type ext3 (rw)
lsof
따라서 해당 설치를 찾기 위해 grep을 실행하면 다음과 같습니다 /export/raid0
.
$ lsof | grep '/export/raid0'
$
우리는 아무것도 얻지 못합니다. 하지만 만약 우리가 cd /export/raid0
:
$ lsof | grep '/export'
bash 32083 root cwd DIR 253,2 4096 2 /export/raid0
이제 Bash 쉘이 LVM에 액세스하고 있는 것을 볼 수 있습니다. 이제 vi afile
여전히 디렉토리에 있습니다 /export/raid0
.
$ lsof | grep '/export'
bash 32083 root cwd DIR 253,2 4096 2 /export/raid0
vi 32140 root cwd DIR 253,2 4096 2 /export/raid0
vi 32140 root 3u REG 253,2 4096 278612 /export/raid0/.afile.swp
그리고 lsof
이러한 방문도 볼 수 있습니다.