선형 장치 매퍼 사용에 대한 문서는 다음과 같습니다.https://www.kernel.org/doc/Documentation/device-mapper/linear.txt
이 문서를 이해하려고 노력 중입니다. 개발 경로와 오프셋이라는 두 가지 매개변수가 필요하다고 합니다. 그러나 내가 찾은 모든 예는 이전과 이후에 다른 것을 보여줍니다 linear
. 설명서와 여기에서 예제를 볼 수 있습니다.http://pig.made-it.com/devicemapper.html
마지막 링크의 예는 다음과 같습니다.
echo 0 $(blockdev --getsize /dev/loop1) linear /dev/loop1 0 > /tmp/onedisk SIZE1=$(blockdev --getsize /dev/loop1) SIZE2=$(blockdev --getsize /dev/loop2) echo ${SIZE1} ${SIZE2} linear /dev/loop2 0 >> /tmp/onedisk dmsetup create twoasone /tmp/onedisk
내가 아는 한, 첫 번째 줄은 무언가의 출력을 가져와서 /tmp/onedisk에 넣는 것입니다. Linear 앞에 뭔가가 있는 이유는 무엇이며, 그 역할은 무엇인가요?
글쎄요, 저는 한동안 이 일을 해왔습니다. 내 생각에는 이것이 기본적으로 에코되는 세 가지 매개 변수인 것 같습니다.
0
$(blockdev --getsize /dev/loop1)
linear /dev/loop1 0
그런 다음 echo의 출력은 /tmp/onedisk에 저장됩니다. tmp/ondisk의 내용은 결국 dmsetup create의 매개변수가 됩니다. 이 올바른지? /tmp/onedisk 시작 부분에 0과 크기가 저장되는 이유를 이해하려면 dmsetup create에 대한 설명서를 꼭 봐야 합니까?
답변1
위 예의 첫 번째 줄에서는 선형성이 실제로 실행되지 않습니다. 그것은 모두 방금 반향되었습니다 /tmp/onedisk
. 나는 이것을 알고 있습니다 tmp/onedisk
.
0 2048 선형/개발/루프0 0
선형은 마지막 행까지 사용되지 않습니다. 마지막 줄에서는 create 명령을 사용하여 dmsetup을 실행합니다. Twoasone은 create 명령에 전달된 장치 이름입니다. /tmp/onedisk
또한 포함 테이블 형식으로 create 명령에 전달됩니다. 따라서 선형은 실제로 표 형식 옵션입니다. 를 실행하여 dmsetup 매뉴얼에서 이에 대한 자세한 정보를 볼 수 있습니다 man dmsetup
. "표 형식" 섹션에서 "선형"을 찾으세요.