![Lostup -a를 작동시키려면 어떻게 해야 합니까?](https://linux55.com/image/17474/Lostup%20-a%EB%A5%BC%20%EC%9E%91%EB%8F%99%EC%8B%9C%ED%82%A4%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
# losetup /dev/loop0 /tmp/tmpuUwgbn
# losetup -a
# losetup -f
/dev/loop1
# losetup /dev/loop0
/dev/loop0: [0806]:33654 (/tmp/tmpuUwgbn)
# ls -la /tmp/tmpuUwgbn
-rw------- 1 root root 0 2011-08-24 15:49 /tmp/tmpuUwgbn
# losetup -a
#
알면서 왜 losetup -a
기재 하지 않았나요? /dev/loop0
이 man
페이지에는 어떠한 힌트도 제공되지 않습니다.
답변1
512B보다 작은 백업 파일이 있는 루프 장치는 /proc/partitions
lossup이 루프 장치를 찾는 데 사용하는 에 나열되지 않습니다. 여기에 나열되지 않은 이유는 이와 같은 루프 장치를 생성하면 블록 크기(루프 장치의 경우 512B)보다 작은 블록 장치를 얻게 되기 때문이라고 생각합니다.
따라서 Lostup과 커널을 사용하면 512B보다 작은 루프 장치를 만들 수 있지만 어쨌든 사용할 수는 없습니다(읽거나 쓸 수 없음 blocksize --getsize returns 0
). 그러한 장치로 할 수 있는 유일한 일은 - 내가 이해하는 한 - 지원 파일을 늘리고 호출하는 것입니다. 이제 루프 장치가 losetup -c /dev/loopX
지원 파일 >= 512B 인 경우에 /proc/partitions
나타 납니다 $(losetup -a)
.
IMHO, 이 기능은 losetup -c
커널이 오류를 반환하는 대신 <511B 백업 파일을 사용하여 루프 장치 생성을 지원하는 이유입니다.
답변2
이는 losetup -a
512바이트보다 작은 관련 파일이 있는 루프 장치가 어떤 이유로 나열되지 않기 때문입니다.
# losetup /dev/loop1 `mktemp`
# losetup -a
# losetup -d /dev/loop1
# t=`mktemp`; truncate --size 1 $t; losetup /dev/loop1 $t
# losetup -a
# losetup -d /dev/loop1
# t=`mktemp`; truncate --size 511 $t; losetup /dev/loop1 $t
# losetup -a
# losetup -d /dev/loop1
# t=`mktemp`; truncate --size 512 $t; losetup /dev/loop1 $t
# losetup -a
/dev/loop1: [0806]:33683 (/tmp/tmp.M0F7bovkxK)
왜? 내가 알았더라면 좋았을 텐데. 이 man
페이지 어딘가에 이것을 언급해야 할 것 같습니다 .