이는 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 guestmount 명령입니다.
프로그램:
이름
guestmount - FUSE 및 libguestfs를 사용하여 호스트에 게스트 파일 시스템 마운트
개요
guestmount [--옵션] -a disk.img -m 장치 [--ro] 마운트 지점
guestmount [--옵션] -a disk.img -i [--ro] 마운트 지점
guestmount [--옵션] -d 게스트 -i [--ro] 마운트 지점
경고
라이브 가상 머신의 쓰기 모드에서 또는 다른 디스크와 동시에 "guestmount" 사용
편집 도구는 위험할 수 있으며 잠재적으로 디스크 손상을 일으킬 수 있습니다. 가상 머신
이 명령을 사용하기 전에 종료해야 하며 디스크 이미지를 편집하면 안 됩니다.
동시에.
사용 --로 (읽기 전용) 디스크 이미지 또는 가상 디스크가 "guestmount"를 안전하게 사용하는 옵션
기계가 살아있을 수 있습니다. 실행하면 이상하거나 일관되지 않은 결과가 나타날 수 있습니다.
다른 변경 사항과 동시에 적용되지만 이 옵션을 사용하면 디스크 손상의 위험이 없습니다.
기술
guestmount 프로그램은 가상 머신 파일 시스템 및 기타 디스크를 마운트하는 데 사용할 수 있습니다.
호스트의 이미지. 게스트 파일 시스템에 액세스하기 위해 libguestfs를 사용하고 FUSE(
"사용자 공간의 파일 시스템") 마운트 가능한 장치로 표시되도록 합니다.
다른 옵션과 함께 하나 이상의 장치(-a 옵션) 또는 libvirt
도메인 (-d 옵션), 하나 이상의 마운트 지점(-m 옵션) 또는 -i 검사
옵션 또는 --라이브 옵션. 이것이 어떻게 작동하는지에 더 잘 설명되어 있습니다. 게스트 피쉬(1)
매뉴얼 페이지 또는 아래 예제를 참조하십시오.
FUSE를 사용하면 루트가 아닌 파일 시스템을 마운트할 수 있습니다. 마운트 지점은 사용자가 소유해야 하며
파일 시스템은 특정 전역을 만들지 않는 한 다른 사용자에게 표시되지 않습니다.
에 대한 구성 변경 /etc/fuse.conf. 파일 시스템을 마운트 해제하려면 다음을 사용하십시오.
게스트 언마운트(1) 명령.
사용 예
첫 번째 파티션에 기본 파일 시스템이 있는 일반적인 Windows 게스트의 경우:
guestmount -a windows.img -m /dev/sda1 --ro / mnt
다음이 있는 일반적인 Linux 게스트의 경우 /신병 첫 번째 파티션의 파일 시스템 및
논리 볼륨의 루트 파일 시스템:
guestmount -a linux.img -m /dev/VG/LV -m /dev/sda1:/신병 --로 / mnt
libguestfs가 게스트 마운트 지점을 감지하도록 하려면 다음을 수행하십시오.
guestmount -a guest.img -i --ro / mnt
"Guest"라는 libvirt 게스트의 경우 다음을 수행할 수 있습니다.
guestmount -d 게스트 -i --ro / mnt
게스트 또는 디스크 이미지에 어떤 파일 시스템이 포함되어 있는지 모르는 경우 다음을 사용하십시오.
가상 파일 시스템(1) 먼저:
virt-filesystems -d MyGuest
과도한 디버깅 정보 없이 libguestfs 호출을 추적하려는 경우
권하다:
게스트 마운트 [...] --추적 / mnt
프로그램을 디버깅하려면 다음을 권장합니다.
게스트 마운트 [...] --trace --verbose / mnt
파일 시스템을 사용한 후 마운트 해제하려면:
게스트 언마운트 / mnt
노트
기타 사용자 참조 전에, 파일 시스템 by 디폴트 값
한 명의 사용자(예: 루트)로 파일 시스템을 마운트하면 다른 사용자는 파일 시스템을 볼 수 없습니다.
기본적으로. 수정 사항은 마운트할 때 FUSE "allow_other" 옵션을 추가하는 것입니다.
sudo guestmount [...] -o 허용_기타 / mnt
사용 퓨즈
일부 배포판에서는 자신을 특수 그룹(예: "fuse")에 추가해야 할 수 있습니다.
모든 FUSE 파일 시스템을 사용할 수 있습니다. 이것은 Debian 및 파생 제품에서 필요합니다.
다른 배포판에서는 특별한 그룹이 필요하지 않습니다. Fedora 또는 Red Hat에서는 필요하지 않습니다.
엔터프라이즈 리눅스.
퓨저마운트 오류: "장치 or 의지 바쁘다"
시스템의 다른 프로세스가 마운트 지점으로 점프할 때 이 오류를 볼 수 있습니다.
방금 만든 상태에서 열린 상태로 유지하고 마운트 해제하지 못하게 합니다. 보통
범인은 다양한 GUI "인덱싱" 프로그램입니다.
이 문제에 대한 일반적인 해결 방법은 "fusermount -u" 명령을 몇 번 다시 시도하는 것입니다.
작동할 때까지 시간(게스트 언마운트(1) 당신을 위해 이것을 합니다). 불행히도 이것은
(예를 들어) 마운트된 파일 시스템이 특히 크고
침입 프로그램은 특히 지속적입니다.
올바른 수정은
Linux 관련 복제(2) /공유 해제(2) 플래그 "CLONE_NEWNS". 아쉽게도 현재 이
루트가 필요하며 guestmount에 기능으로 추가해야 할 수도 있습니다.
경주 조건 가능한 언제 종료 아래 (down) 전에, 연결
인셀덤 공식 판매점인 게스트 언마운트(1) /퓨저마운트(1) 종료, guestmount가 여전히 실행 중이고 정리 중일 수 있습니다.
마운트 지점. 디스크 이미지가 완전히 마무리되지 않습니다.
즉, 다음과 같은 스크립트에는 불쾌한 경쟁 조건이 있습니다.
guestmount -a disk.img -i / mnt
# 복사 / mnt
게스트 언마운트 / mnt
# 즉시 'disk.img' 사용 시도 ** UNSAFE **
해결책은 --pid 파일 guestmount PID를 파일에 쓰는 옵션, 그런 다음
guestunmount 스핀 후 이 PID가 종료되기를 기다립니다.
guestmount -a disk.img -i --pid-파일 guestmount.pid / mnt
# ...
# ...
# guestunmount를 호출하기 *전에* guestmount의 PID를 저장합니다.
pid="$(고양이 게스트마운트.pid)"
# 파일 시스템을 마운트 해제합니다.
게스트 언마운트 / mnt
시간 초과 = 10
카운트=$타임아웃
while kill -0 "$pid" 2>/dev/null && [ $count -gt 0 ]; 하다
수면 1
((세다--))
한
if [ $count -eq 0 ]; 그 다음에
echo "$0: $timeout 초 후에 guestmount 종료 대기 실패"
1 번 출구
fi
# 이제 디스크 이미지를 사용해도 안전합니다.
"guestfs_mount_local" API를 직접 사용하는 경우("MOUNT LOCAL" 참조)
손님(3) 그러면 안전하고 경쟁이 없는 프로그램을 작성하는 것이 훨씬 쉽습니다.
옵션
-a 영상
--추가하다 영상
블록 장치 또는 가상 머신 이미지를 추가합니다.
디스크 이미지의 형식이 자동으로 감지됩니다. 이것을 무시하고 강제로
특정 형식 사용 --형식=.. 옵션을 선택합니다.
-a URI
--추가하다 URI
원격 디스크를 추가합니다. 의 "원격 저장소 추가"를 참조하십시오. 게스트 피쉬(1).
-c URI
--연결하다 URI
와 함께 사용하면 -d 옵션에서 사용할 libvirt URI를 지정합니다.
기본값은 기본 libvirt 연결을 사용하는 것입니다.
-d libvirt 도메인
--도메인 libvirt 도메인
명명된 libvirt 도메인에서 디스크를 추가합니다. 만약 --로 옵션도 사용됩니다.
libvirt 도메인을 사용할 수 있습니다. 그러나 쓰기 모드에서는 다음과 같은 libvirt 도메인만
종료는 여기에서 이름을 지정할 수 있습니다.
이름 대신 도메인 UUID를 사용할 수 있습니다.
--dir-캐시-시간 초과 N
readdir 캐시 시간 제한을 다음으로 설정합니다. N 초, 기본값은 60초입니다. readdir
캐시[실제로 반독립적인 캐시가 여러 개 있음]는
읽기 디렉토리(2) 디렉토리에 있는 파일의 통계 및 확장 속성으로 호출,
곧 요청될 것으로 예상됩니다.
FUSE에 의해 구현된 다른 속성 캐시도 있습니다(FUSE 옵션 참조). -o
attr_timeout), 그러나 FUSE 캐시는 향후 요청을 예상하지 않고 캐시만 예상합니다.
기존 것.
--에코 키
키와 암호를 묻는 메시지가 표시되면 guestfish는 일반적으로 에코를 꺼서 다음을 수행합니다.
당신이 입력하는 것을 볼 수 없습니다. Tempest 공격과
방에 다른 사람이 없습니다. 이 플래그를 지정하여 입력 중인 내용을 볼 수 있습니다.
--fd=FD
파이프 또는 eventfd 파일 설명자를 지정하십시오. 마운트 지점을 사용할 준비가 되면
guestmount는 이 파일 설명자에 단일 바이트를 기록합니다. 이것은 다음에서 사용할 수 있습니다.
~과 연계되어 --포크 없음 다른 프로세스에서 guestmount captive를 실행하기 위해.
--format=원시|qcow2|..
--체재
기본값 -a 옵션은 디스크 이미지의 형식을 자동으로 감지하는 것입니다. 사용
이것은 강제로 디스크 포맷을 -a 명령줄에 이어지는 옵션. 사용
--체재 인수가 없으면 후속 작업을 위해 자동 감지로 다시 전환됩니다. -a 옵션을 제공합니다.
신뢰할 수 없는 원시 형식 게스트 디스크 이미지가 있는 경우 이 옵션을 사용하여
디스크 형식을 지정합니다. 이것은 악의적 인 보안 문제를 피할 수 있습니다.
게스트(CVE-2010-3851). 의 "guestfs_add_drive_opts"도 참조하십시오. 손님(3).
--퓨즈 도움말
특수 FUSE 옵션에 대한 도움말 표시(참조 -o 아래).
--도움
간단한 도움말을 표시하고 종료합니다.
-i
--조사관
사용 가상 검사관(1) 코드, 운영 체제를 찾는 디스크를 검사하고
실제 가상 머신에 마운트되는 것처럼 파일 시스템을 마운트하십시오.
--표준 입력에서 키
stdin에서 키 또는 패스프레이즈 매개변수를 읽습니다. 기본값은 읽기를 시도하는 것입니다.
열어서 사용자의 암호 /dev/tty.
--라이브
라이브 가상 머신에 연결합니다. (실험적, "실행 중인 데몬에 연결" 참조
in 손님(삼)).
-m dev[:마운트포인트[:옵션[:fs유형]]
--산 개발[:마운트포인트[:옵션[:fstype]]]
지정된 마운트 지점에 명명된 파티션 또는 논리 볼륨을 마운트합니다. in 전에, 손님 (이
호스트의 마운트 지점과는 아무 관련이 없습니다).
마운트 지점을 생략하면 기본적으로 /. 무언가를 장착해야 합니다. /.
마운트 매개변수의 세 번째(거의 사용되지 않음) 부분은 마운트 옵션 목록입니다.
기본 파일 시스템을 마운트하는 데 사용됩니다. 이것이 주어지지 않으면 마운트 옵션이
빈 문자열이거나 "ro"입니다(후자는 --로 플래그가 사용됨). 에 의해
마운트 옵션을 지정하면 이 기본 선택 사항을 재정의합니다. 아마 유일한
이것을 사용하는 시간은 파일 시스템이
그들을 지원할 수 있습니다:
-m /dev/sda1:/:acl,user_xattr
매개변수의 네 번째 부분은 사용할 파일 시스템 드라이버입니다(예: "ext3" 또는
"ntfs". 이것은 거의 필요하지 않지만 여러 드라이버가 유효한 경우 유용할 수 있습니다.
파일 시스템(예: "ext2" 및 "ext3") 또는 libguestfs가 파일 시스템을 잘못 식별하는 경우.
--포크 없음
데몬화(또는 백그라운드로 분기)하지 마십시오.
-n
--비동기화
기본적으로 FUSE 마운트 지점이 마운트 해제되면 게스트 디스크 동기화를 시도합니다.
이 옵션을 지정하면 디스크 동기화를 시도하지 않습니다. 참조
자동 동기화에 대한 논의 손님(3) 맨페이지.
-o option
--옵션 option
추가 옵션을 FUSE에 전달합니다.
FUSE에서 지원하는 모든 추가 옵션 목록을 얻으려면 아래 명령을 사용하십시오. 메모
FUSE 만 -o 옵션을 전달할 수 있으며 그 중 일부만 좋은 생각입니다.
게스트 마운트 --fuse-help
잠재적으로 유용한 일부 FUSE 옵션:
-o 허용_기타
다른 사용자가 파일 시스템을 볼 수 있도록 허용합니다.
-o attr_timeout=N
FUSE로 속성 캐싱을 활성화하고 제한 시간을 다음으로 설정합니다. N 초.
-o 커널_캐시
커널이 파일을 캐시하도록 허용(이동해야 하는 읽기 수를 줄임)
를 통해 손님(3) API). 이것은 일반적으로 당신이 감당할 수 있다면 좋은 생각입니다
추가 메모리 사용량.
-o 아이디=N -o 기드=N
이 옵션을 사용하여 게스트 파일 시스템 내부의 모든 UID 및 GID를
선택한 값.
-o use_ino
기본 파일 시스템에서 inode 번호를 유지합니다.
이 옵션이 없으면 FUSE는 자체 inode 번호를 구성합니다. inode 번호는
을 참조하십시오 스탯(2) "ls -i" 등은 기본 파일 시스템의 inode 번호가 아닙니다.
주의 사항 이 옵션은 기본 파일 시스템이 다음으로 구성된 경우 잠재적으로 위험합니다.
여러 마운트 지점을 통해 나타나는 중복 inode 번호를 볼 수 있습니다.
퓨즈. 이 옵션을 사용하면 일부 소프트웨어가 혼동될 수 있습니다.
--pid 파일 파일 이름
guestmount 작업자 프로세스의 PID를 "filename"에 씁니다.
-r
--로
장치를 추가하고 모든 것을 읽기 전용으로 마운트하십시오. 또한 쓰기를 허용하지 않고 디스크를 만듭니다.
FUSE에 읽기 전용으로 나타납니다.
게스트 디스크를 편집하지 않으려는 경우 이 방법을 적극 권장합니다. 만약 손님이
실행 중이며 이 옵션은 지원 제공되면 디스크의 강력한 위험이 있습니다.
손님의 부패. 이런 일이 발생하지 않도록 노력하고 있지만 항상 그런 것은 아닙니다.
수.
"읽기 및 쓰기를 위해 디스크 열기"도 참조하십시오. 게스트 피쉬(1).
--selinux
게스트에 대한 SELinux 지원을 활성화합니다.
-v
--말 수가 많은
기본 libguestfs에서 자세한 메시지를 활성화합니다.
-V
--번역
프로그램 버전을 표시하고 종료합니다.
-w
--rw
이것은 -a, -d 그리고 -m 디스크가 추가되고 마운트가 완료되도록 옵션
읽기 쓰기.
의 "읽기 및 쓰기를 위해 디스크 열기"를 참조하십시오. 게스트 피쉬(1).
-x
--추적하다
libguestfs 호출 및 각 FUSE 함수에 대한 항목을 추적합니다.
이렇게 하면 데몬이 백그라운드로 분기되는 것도 중지됩니다(참조 --포크 없음).
onworks.net 서비스를 사용하여 온라인으로 guestmount 사용
