이것은 본질적으로 코너 케이스 전체를 확인하는 문제입니다.
- 드라이브는 / proc / mounts에 나타날 수 있습니다
- 드라이브를 스왑으로 사용할 수 있습니다 (/ proc / swaps 사용)
- 드라이브는 활성 LVM pv의 일부일 수 있습니다 (pvdisplay 사용).
- 드라이브는 dm-mapper RAID 그룹의 일부일 수 있습니다 (/ proc / mdstat 사용).
- 애플리케이션에 의해 드라이브에 직접 액세스 할 수 있습니다 (예 : Oracle은 파일 시스템 대신 드라이브 또는 파티션에 직접 쓰기 지원) (퓨저 사용)
- 가상 머신에서 직접 드라이브에 액세스 할 수 있음 (퓨저 사용)
- 드라이브가 루프백 장치에 의해 참조 할 수 있습니다 (예 :
mount /dev/sda -o offset=1M /foo
) (사용 losetup을의 -a)
이것들은 내가 생각하기 위해 1 분 반 정도 주어진 예입니다. 나는 다른 12 명이 있다고 확신합니다.
내가 생각하는 마지막 예는 가장 흥미롭고 그것에 대해 아는 사람들은 거의 없습니다. 파티션을 사용하지 않고 파일 시스템을 마운트 할 수 있습니다. 시작 오프셋 만 지정하면 Linux에서 루프백 장치를 투명하게 만듭니다. 위의 예는 다음과 같습니다.
# cat /proc/mounts
...
/dev/loop0 /foo ext4 relatime,data=ordered 0 0
# losetup -a
/dev/loop0 [0005]:2048 (/dev/sda), offset 1048576
왜 그렇게 하시겠습니까? 일반적으로 이전에는 끔찍하게 잘못 된 상황이 포함됩니다.
또한 현재 메인 라인에 이름 공간 기능이 있으면 ( 공유 해제 참조 ), 프로세스마다 마운트 된 것과 마운트되지 않은 것에 대해 다른 뷰를 가질 수 있습니다. 여기서 약간의 빨간 약이 시작됩니다.