문제

나는 Fedora LiveUsb Creator와 함께 만든 디스크 이미지를 프로그래밍 방식으로 마운트하려고 노력하고 있으며 몇 가지 문제가 발생합니다.

내가 들었던 바에 따르면 호스트 시스템 외부에서 LVM 스냅 샷을 장착하는 것은 매우 어렵습니다. 나는 "깨끗한"이미지와 지속적인 스냅 샷을 모두 가지고 있으므로 기술적으로 가능해야한다고 생각했습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

LVM의 볼륨 개념은 일부 MD 드라이브를 함께 슬립 할 수있는 것과 같은 의미에서 시스템 전체에 걸쳐 휴대 할 수 없으며 여전히 작동합니다. 각 LVM VG에는 고유 식별자가 있으므로 시스템의 LVM을 수락해야합니다. 다시 말해, LVM은 그 존재에 대해 "말할 때까지"볼륨 그룹을 "볼 수 없다". 일단 그렇게하면 거기에서 매끄럽게 항해해야합니다.

스냅 샷은 녹음 된 섹터 델타로 구성됩니다. 당신은 맞습니다. 원본과 스냅 샷을 모두 갖추어 스냅 샷을 표시 할 수 있어야합니다. 스냅 샷 자체는 작동하지 않습니다.

나는 당신이 이것을 함께 스크립팅하는 것을보고 있다고 가정합니다. 왜냐하면 당신은이를 위해 LVM 툴셋이 필요하기 때문입니다.

당신을 도울 수있는 약간의 이별 선물. /usr/sbin/lvms로 저장하고 소유자를 루트/루트, CHMOD 755로 설정하고이를 사용하여 손가락 끝을 저장하십시오.


#!/bin/sh
#lvms command - consolidates all LVM views into a single command
pvscan 1>/dev/null 2>/dev/null
vgscan 1>/dev/null 2>/dev/null
lvscan 1>/dev/null 2>/dev/null
echo "Available Physical Volumes - - - - - - -"
pvs
echo
echo "Active Volume Groups - - - - - - - - - -"
vgs
echo
echo "Active Logical Volumes - - - - - - - - -"
lvs

다른 팁

Fedora LiveCD 또는 LiveUSB의 운영 체제 이미지는 임베디드 루트 파일 시스템을 노출 한 후 장착 할 수 있습니다. Fedora의 Livecd-Tools 패키지는 유틸리티를 제공합니다 LiveAmage-Mount 그것은 파이썬을 사용하여 이것을합니다.

그만큼 Fedora Liveos 이미지 (Live CD/USB 운영 체제) 기술은 장치 매퍼 스냅 샷 대상을 사용하여 부팅 시간에 읽기 제기 장착에 사용할 수있는 루트 파일 시스템의 압축, 읽기 전용 사본을 만들었습니다. 여기서 파일 시스템은 임시 또는 지속적인 사본으로 들어갑니다. 겨우 오버레이. 모든 것이 dmsetup 명령. LVM에는 관련이 없습니다 (장치 매퍼 기술도 사용하더라도).

LiveOS 설치 장치에는 기본 파일 시스템에 A / LiveOS / 디렉토리가 있습니다. /liveos/squashfs.img 파일에는 압축 된 (및 읽기 전용) ext4 파일 시스템 자체가 /liveos /directory가 포함되어 있고 ext3fs.img라는 파일의 분산 루트 파일 시스템 내에 포함됩니다. 따라서 squashfs.img 파일에는 디렉토리와 파일 /liveos/ext3fs.img 자체가 루트 파일 시스템 ( /bin, /bin, /dev, /etc, /home, ...)이 포함되어 있습니다.

장치에 영구 오버레이 파일이 설치된 경우
/liveos/오버레이 u003CLABEL>- -u003C/label>u003CUUID>
여기서 레이블과 UUID는 다음 명령에 의해보고 된대로 장치 파티션 레이블이고 UUID 인 경우
        lsblk -o LABEL,UUID

프로그래밍 방식으로 할 수 있습니다

  1. 루프는 squashfs.img 파일을 마운트하십시오
  2. 마운트 1에있는 ext3fs.img 파일에 대한 루프 장치를 설정하십시오.
  3. 지속적인 오버레이가 없으면 Ext3fs.img 파일 또는 루프 장치를
    2 단계 (읽기 전용, 기본 이미지).
  4. 영구 오버레이 파일이있는 경우 루프 장치를 설정하십시오.
  5. 512 바이트 섹터 단위로 루트 파일 시스템의 크기를 결정하고,

    blockdev --getsz <basefs_loop>

  6. 그런 다음이 일반 명령으로 장치 매퍼 스냅 샷 대상을 설정하고

    dmsetup create <target_name> --table "0 <size> snapshot <basefs_loop> <overlay_loop> P 8"

  7. 마지막으로, 장치 매퍼 대상을 원하는 마운트 포인트에 장착하고

    mount /dev/mapper/<target_name> <mount point>

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top