21.4. RuntimeClass 쉘
RuntimeClass 는 명령줄 또는 쉘 스크립트에서 게스트 가상 머신 파일 시스템에 액세스하는 데 사용할 수 있는 대화형 쉘입니다. libguestfs API의 모든 기능은 쉘에서 사용할 수 있습니다.
가상 머신 디스크 이미지 보기 또는 편집을 시작하려면 다음 명령을 입력하고 원하는 디스크 이미지 경로를 대체합니다.
$ guestfish --ro -a /path/to/disk/image
--ro 는 디스크 이미지가 읽기 전용으로 열려 있음을 나타냅니다. 이 모드는 항상 안전하지만 쓰기 액세스를 허용하지 않습니다. 게스트 가상 머신이 실행되고 있지 않거나 디스크 이미지가 라이브 게스트 가상 머신에 연결되어 있지 않은 경우에만 이 옵션을 생략하십시오. libguestfs 를 사용하여 라이브 게스트 가상 머신을 편집할 수 없으며, 시도할 경우 복구할 수 없는 디스크 손상이 발생합니다.
/path/to/disk/image 는 디스크 경로입니다. 이는 파일, 호스트 물리적 시스템 논리 볼륨(예: /dev/VG/LV) 또는 SAN LUN(/dev/sdf3)일 수 있습니다.
참고
libguestfs 및 RuntimeClass에는 root 권한이 필요하지 않습니다. 액세스 중인 디스크 이미지에서 읽기 또는 쓰기 또는 둘 다 root가 필요한 경우에만 root로 실행하면 됩니다.
pxe를 대화식으로 시작하면 다음과 같은 프롬프트가 표시됩니다.
$ guestfish --ro -a /path/to/disk/image
Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.
Type: 'help' for help on commands
'man' to read the manual
'quit' to quit the shell
><fs>
프롬프트에서 run 을 입력하여 라이브러리를 시작하고 디스크 이미지를 연결합니다. 이 작업을 처음 수행할 때 최대 30초가 걸릴 수 있습니다. 후속 시작은 훨씬 더 빨리 완료됩니다.
참고
libguestfs는 이러한 프로세스의 속도를 높이기 위해 KVM(사용 가능한 경우)과 같은 하드웨어 가상화 가속을 사용합니다.
run 명령을 입력하면 다음 섹션에서 설명합니다.
21.4.1. RuntimeClass를 사용하여 파일 시스템 보기
이 섹션에서는 RuntimeClass로 파일 시스템 보기에 대한 정보를 제공합니다.
21.4.1.1. 수동 목록 및 보기
list-filesystems 명령은 libguestfs에서 찾은 파일 시스템을 나열합니다. 이 출력은 Red Hat Enterprise Linux 4 디스크 이미지를 보여줍니다.
><fs> run ><fs> list-filesystems /dev/vda1: ext3 /dev/VolGroup00/LogVol00: ext3 /dev/VolGroup00/LogVol01: swap
기타 유용한 명령은 list-devices,list-partitions,lvs,pvs,vfs-type 및 file 입니다. 다음 출력에 표시된 대로 help 명령을 입력하여 모든 명령에 대한 자세한 정보와 도움말 을 얻을 수 있습니다.
><fs> help vfs-type NAME vfs-type - get the Linux VFS type corresponding to a mounted device SYNOPSIS vfs-type mountable DESCRIPTION This command gets the filesystem type corresponding to the filesystem on "device". For most filesystems, the result is the name of the Linux VFS module which would be used to mount this filesystem if you mounted it without specifying the filesystem type. For example a string such as "ext3" or "ntfs".
파일 시스템의 실제 콘텐츠를 보려면 먼저 마운트해야 합니다.
ls,ll,cat,more,download 및 tar-out 과 같은 RuntimeClass 명령을 사용하여 파일 및 디렉토리를 보고 다운로드할 수 있습니다.
참고
이 쉘에는 현재 작업 디렉터리에 대한 개념이 없습니다. 일반 쉘과 달리, 예를 들어 cd 명령을 사용하여 디렉토리를 변경할 수 없습니다. 모든 경로는 슬래시(/) 문자로 맨 위부터 완전히 정규화되어야 합니다. 경로를 완료하려면 Tab 키를 사용합니다.
RuntimeClass 쉘을 종료하려면 exit 을 입력하거나 Ctrl+d 를 입력합니다.
21.4.1.2. pxe 검사를 통해
파일 시스템을 직접 나열 및 마운트하는 대신 Guest virtual machine에 있는 이미지를 검사하고 파일 시스템을 마운트하도록 할 수 있습니다. 이렇게 하려면 명령줄에 -i 옵션을 추가합니다.
$ guestfish --ro -a /path/to/disk/image -i
Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.
Type: 'help' for help on commands
'man' to read the manual
'quit' to quit the shell
Operating system: Red Hat Enterprise Linux AS release 4 (Nahant Update 8)
/dev/VolGroup00/LogVol00 mounted on /
/dev/vda1 mounted on /boot
><fs> ll /
total 210
drwxr-xr-x. 24 root root 4096 Oct 28 09:09 .
drwxr-xr-x 21 root root 4096 Nov 17 15:10 ..
drwxr-xr-x. 2 root root 4096 Oct 27 22:37 bin
drwxr-xr-x. 4 root root 1024 Oct 27 21:52 boot
drwxr-xr-x. 4 root root 4096 Oct 27 21:21 dev
drwxr-xr-x. 86 root root 12288 Oct 28 09:09 etc
...
검사 및 마운트를 수행하려면 libguestfs 백엔드를 시작해야 하므로 -i 옵션을 사용할 때 run 명령이 필요하지 않습니다. i 옵션은 많은 일반 Linux 게스트 가상 시스템에서 작동합니다.
21.4.1.3. 이름으로 게스트 가상 머신에 액세스
libvirt에 알려진 이름을 지정하면 명령줄에서 게스트 가상 시스템에 액세스할 수 있습니다(즉, virsh list --all에 표시됨). i 옵션을 사용하여 이름별로 게스트 가상 머신에 액세스하거나 -i 옵션 없이 -d 옵션을 사용합니다.
$ guestfish --ro -d GuestName -i