นี่คือคำสั่ง virt-rescue ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
virt-rescue - เรียกใช้ Rescue Shell บนเครื่องเสมือน
เรื่องย่อ
virt-rescue [--ตัวเลือก] -d domname
virt-rescue [--ตัวเลือก] -a disk.img [-a disk.img ...]
virt-rescue --suggest (-d domname | -a disk.img ...)
แบบเก่า:
virt-rescue [--ตัวเลือก] domname
virt-rescue [--ตัวเลือก] disk.img [disk.img ...]
คำเตือน
การใช้ "virt-rescue" ในโหมดเขียนบนเครื่องเสมือนแบบสด หรือร่วมกับผู้อื่น
เครื่องมือแก้ไขดิสก์ อาจเป็นอันตราย อาจทำให้ดิสก์เสียหายได้ เสมือน
ต้องปิดเครื่องก่อนใช้คำสั่งนี้ และต้องไม่แก้ไขภาพดิสก์
พร้อมกัน
ใช้ --ร (อ่านอย่างเดียว) ตัวเลือกในการใช้ "virt-rescue" อย่างปลอดภัยหากดิสก์อิมเมจหรือ virtual
เครื่องอาจจะใช้งานได้ คุณอาจเห็นผลลัพธ์ที่แปลกหรือไม่สอดคล้องกันหากทำงาน
พร้อมกันกับการเปลี่ยนแปลงอื่นๆ แต่ด้วยตัวเลือกนี้ คุณจะไม่เสี่ยงกับความเสียหายของดิสก์
DESCRIPTION
virt-rescue เหมือนกับ Rescue CD แต่สำหรับเครื่องเสมือน และไม่ต้องใช้ซีดี
virt-rescue ให้เปลือกกู้ภัยและเครื่องมือการกู้คืนที่เรียบง่ายซึ่งคุณสามารถใช้เพื่อ
ตรวจสอบหรือกู้คืนเครื่องเสมือนหรืออิมเมจดิสก์
คุณสามารถเรียกใช้ virt-rescue บนเครื่องเสมือนใด ๆ ที่รู้จักใน libvirt หรือโดยตรงบนดิสก์
รูปภาพ:
virt-rescue -d ชื่อผู้เยี่ยมชม
virt-rescue --ro -a /path/to/disk.img
virt-rescue -a /dev/sdc
สำหรับ VM สด คุณ ต้อง ใช้ตัวเลือก --ro
เมื่อคุณเรียกใช้ virt-rescue บนเครื่องเสมือนหรือดิสก์อิมเมจ คุณจะถูกวางไว้ในan
bash shell แบบโต้ตอบที่คุณสามารถใช้คำสั่ง Linux ทั่วไปได้มากมาย สิ่งที่คุณเห็นใน /
(/ bin, / lib ฯลฯ) เป็นอุปกรณ์กู้ภัย คุณต้องเมานต์เครื่องเสมือน
ระบบไฟล์ด้วยมือ มีไดเร็กทอรีว่างที่เรียกว่า /sysroot ที่คุณสามารถเมานต์
ระบบไฟล์
คุณสามารถรับ virt-rescue เพื่อแนะนำคำสั่งเมานต์ให้คุณโดยใช้คำสั่ง --แนะนำ ตัวเลือก
(ในเทอร์มินัลอื่น):
$ virt-rescue --แนะนำ -d Fedora15
กำลังตรวจสอบเครื่องเสมือนหรืออิมเมจดิสก์ ...
ดิสก์นี้มีระบบปฏิบัติการตั้งแต่หนึ่งระบบขึ้นไป คุณสามารถใช้สิ่งเหล่านี้
คำสั่ง mount ใน virt-rescue (ที่ > พรอมต์) เพื่อเมานต์
ระบบไฟล์
# /dev/vg_f15x32/lv_root เป็นรูทของระบบปฏิบัติการลินุกซ์
# ประเภท: linux, distro: fedora เวอร์ชัน: 15.0
# Fedora รุ่น 15 (Lovelock)
เมานต์ /dev/vg_f15x32/lv_root /sysroot/
เมานต์ /dev/vda1 /sysroot/boot
เมานต์ - ผูก / dev /sysroot/dev
เมานต์ - ผูก /dev/pts /sysroot/dev/pts
เมานต์ - ผูก / proc /sysroot/proc
เมานต์ - ผูก / sys /sysroot/sys
อีกวิธีหนึ่งคือการแสดงรายการโลจิคัลวอลุ่ม (ด้วย เลเวล(8)) และพาร์ทิชัน (ด้วย แยก(ฮิต))
และติดตั้งด้วยมือ:
> lvs
LV VG Attr LSize Origin Snap% ย้ายบันทึก คัดลอก% Convert
lv_root vg_f15x32 -wi-a- 8.83G
lv_swap vg_f15x32 -wi-a- 992.00M
> เมานต์ /dev/vg_f15x32/lv_root /sysroot
> เมานต์ /dev/vda1 /sysroot/boot
> ls /sysroot
คำสั่งอื่นเพื่อแสดงรายการระบบไฟล์ที่มีอยู่คือ ระบบไฟล์เสมือน(1)
ในการรันคำสั่งใน Linux guest (เช่น grub) คุณควร chroot ลงใน /sysroot
ไดเรกทอรีแรก:
> chroot /sysroot
หมายเหตุ
Virt-rescue สามารถใช้กับ ใด ไฟล์อิมเมจดิสก์หรืออุปกรณ์ ไม่ใช่แค่เครื่องเสมือน สำหรับ
ตัวอย่าง คุณสามารถใช้กับไฟล์เปล่าได้หากต้องการแบ่งพาร์ติชั่นไฟล์นั้น (แม้ว่าเราจะ
แนะนำให้ใช้ ปลาแขก(1) แทน เนื่องจากจะเหมาะสมกว่าเพื่อการนี้) คุณ
สามารถใช้ virt-rescue กับสิ่งต่าง ๆ เช่นการ์ด SD
คุณจะได้รับ virt-rescue เพื่อให้คุณสามารถเล่นดิสก์ได้ สิ่งนี้มีประโยชน์สำหรับ
ทดสอบยูทิลิตี้ลินุกซ์ (ดู --เกา).
Virt-rescue ไม่ต้องการการรูท คุณต้องรันมันเป็นรูทถ้าคุณต้องการรูท to
เปิดภาพดิสก์
เครื่องมือนี้ได้รับการออกแบบมาสำหรับการแฮ็กแบบโต้ตอบอย่างรวดเร็วบนเครื่องเสมือน สำหรับข้อมูลเพิ่มเติม
การเข้าถึงแบบมีโครงสร้างไปยังอิมเมจดิสก์เครื่องเสมือน คุณควรใช้ แขก(3). ที่จะได้รับ
เชลล์ที่มีโครงสร้างซึ่งคุณสามารถใช้เพื่อทำการเปลี่ยนแปลงสคริปต์กับแขกได้ ใช้ ปลาแขก(1)
OPTIONS
--ช่วยด้วย
แสดงความช่วยเหลือสั้นๆ
-a ไฟล์
--เพิ่ม ไฟล์
เพิ่ม ไฟล์ ซึ่งควรเป็นภาพดิสก์จากเครื่องเสมือน ถ้าเครื่องเสมือน
มีอุปกรณ์บล็อกหลายตัว คุณต้องจัดหาอุปกรณ์ทั้งหมดแยกกัน -a ตัวเลือก
รูปแบบของดิสก์อิมเมจถูกตรวจพบโดยอัตโนมัติ เพื่อแทนที่สิ่งนี้และบังคับ a
รูปแบบเฉพาะใช้ --รูปแบบ=.. ตัวเลือก
-a URI
--เพิ่ม URI
เพิ่มดิสก์ระยะไกล ดู "การเพิ่มที่เก็บข้อมูลระยะไกล" ใน ปลาแขก(1)
--ผนวก เมล็ดพืช
ส่งตัวเลือกเพิ่มเติมไปยังเคอร์เนลกู้ภัย
-c URI
--เชื่อมต่อ URI
หากใช้ libvirt ให้เชื่อมต่อกับที่กำหนด URI. หากละเว้น เราจะเชื่อมต่อกับ
ไฮเปอร์ไวเซอร์ libvirt เริ่มต้น
หากคุณระบุอุปกรณ์บล็อกผู้เยี่ยมชมโดยตรง (-a) ดังนั้น libvirt จะไม่ถูกใช้เลย
-d ผู้เข้าพัก
--โดเมน ผู้เข้าพัก
เพิ่มดิสก์ทั้งหมดจากแขก libvirt ที่มีชื่อ สามารถใช้ UUID ของโดเมนแทน
ชื่อ
--format=raw|qcow2|..
--รูปแบบ
ค่าเริ่มต้นสำหรับ -a ตัวเลือกคือการตรวจจับรูปแบบของดิสก์อิมเมจโดยอัตโนมัติ โดยใช้
สิ่งนี้บังคับรูปแบบดิสก์สำหรับ -a ตัวเลือกที่เป็นไปตามบรรทัดคำสั่ง โดยใช้
--รูปแบบ โดยไม่มีอาร์กิวเมนต์สลับกลับไปเป็นการตรวจจับอัตโนมัติในภายหลัง -a ตัวเลือก
ตัวอย่างเช่น:
virt-rescue --format=raw -a disk.img
บังคับรูปแบบ raw (ไม่มีการตรวจหาอัตโนมัติ) สำหรับ ดิสก์.img.
virt-rescue --format=raw -a disk.img --format -a another.img
บังคับรูปแบบ raw (ไม่มีการตรวจหาอัตโนมัติ) สำหรับ ดิสก์.img และเปลี่ยนกลับเป็นการตรวจจับอัตโนมัติสำหรับ
อื่น.img.
หากคุณมีอิมเมจดิสก์แขกที่ไม่น่าเชื่อถือในรูปแบบ raw คุณควรใช้ตัวเลือกนี้เพื่อ
ระบุรูปแบบดิสก์ เพื่อหลีกเลี่ยงปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นกับอันตราย
แขกรับเชิญ (CVE-2010-3851)
-m MB
--memsize MB
เปลี่ยนจำนวนหน่วยความจำที่จัดสรรให้กับระบบกู้ภัย ค่าเริ่มต้นถูกกำหนดโดย
libguestfs และมีขนาดเล็ก แต่เพียงพอสำหรับการเรียกใช้เครื่องมือระบบ โปรแกรมเป็นครั้งคราว
อาจต้องการหน่วยความจำเพิ่มเติม พารามิเตอร์ถูกระบุเป็นเมกะไบต์
--เครือข่าย
เปิดใช้งานเครือข่ายผู้ใช้ QEMU ในแขก ดู "เครือข่าย"
-r
--ร
เปิดรูปภาพแบบอ่านอย่างเดียว
ต้องใช้ตัวเลือกนี้เสมอหากดิสก์อิมเมจหรือเครื่องเสมือนทำงานอยู่
และแนะนำโดยทั่วไปในกรณีที่คุณไม่จำเป็นต้องเข้าถึงการเขียนดิสก์
ดูเพิ่มเติมที่ "การเปิดดิสก์เพื่ออ่านและเขียน" ใน ปลาแขก(1)
--เกา
--scratch=ไม่
เทศกาล --เกา ตัวเลือกเพิ่มดิสก์รอยขีดข่วนขนาดใหญ่ให้กับอุปกรณ์กู้ภัย --scratch=ไม่
เพิ่มดิสก์ขูด "N" ดิสก์เริ่มต้นจะถูกลบโดยอัตโนมัติเมื่อ virt-
ทางออกกู้ภัย
คุณยังสามารถผสม -a, -d และ --เกา ตัวเลือก. ดิสก์เริ่มต้นจะถูกเพิ่มไปยัง
อุปกรณ์ตามลำดับที่ปรากฏบนบรรทัดคำสั่ง
--เซลินุกซ์
เปิดใช้งาน SELinux ในอุปกรณ์กู้ภัย คุณควรอ่าน "SELINUX" ใน แขก(3)
ก่อนใช้ตัวเลือกนี้
--smp N
เปิดใช้งาน CPU เสมือน N ≥ 2 ตัวในอุปกรณ์กู้ภัย
--แนะนำ
ตรวจสอบดิสก์อิมเมจและแนะนำว่าควรใช้คำสั่ง mount ใดเพื่อเมาต์
ดิสก์ คุณควรใช้ --แนะนำ ตัวเลือกในเทอร์มินัลที่สอง จากนั้นวาง
คำสั่งในการช่วยเหลือคุณธรรมอื่น
ตัวเลือกนี้หมายถึง --ร และปลอดภัยต่อการใช้งานแม้ว่าแขกจะนอนอยู่หรือเป็นอย่างอื่นก็ตาม
virt-rescue กำลังทำงาน
-v
--รายละเอียด
เปิดใช้งานข้อความ verbose สำหรับการดีบัก
-V
--รุ่น
แสดงหมายเลขเวอร์ชันและออก
-w
--รว
สิ่งนี้เปลี่ยนไฟล์ -a และ -d ตัวเลือกเพื่อเพิ่มดิสก์และเมานต์อ่าน -
เขียน.
ดู "การเปิดดิสก์เพื่ออ่านและเขียน" ใน ปลาแขก(1)
-x เปิดใช้งานการติดตามการเรียก libguestfs API
แบบเก่า คำสั่ง จองทาง LINE อาร์กิวเมนต์
virt-rescue เวอร์ชันก่อนหน้าอนุญาตให้คุณเขียน:
virt-rescue disk.img [disk.img ... ]
or
ชื่อแขก virt-rescue
ในขณะที่ในเวอร์ชันนี้คุณควรใช้ -a or -d ตามลำดับเพื่อหลีกเลี่ยงกรณีที่สับสน
โดยที่ภาพดิสก์อาจมีชื่อเดียวกับแขก
ยังคงรองรับรูปแบบเก่าเพื่อความเข้ากันได้
เครือข่าย
กำลังเพิ่ม --เครือข่าย ตัวเลือกเปิดใช้งานเครือข่ายผู้ใช้ QEMU ในอุปกรณ์กู้ภัย ที่นั่น
มีความแตกต่างบางประการระหว่างเครือข่ายผู้ใช้และเครือข่ายทั่วไป:
ปิงไม่ทำงาน
เนื่องจากโปรโตคอล ICMP ECHO_REQUEST โดยทั่วไปต้องการรูทเพื่อส่ง
แพ็กเก็ต ping และเนื่องจาก virt-rescue จะต้องสามารถทำงานเป็นผู้ใช้ที่ไม่ใช่รูทได้ ผู้ใช้ QEMU
เครือข่ายไม่สามารถเลียนแบบ ปิง(8) คำสั่ง คำสั่ง ping จะปรากฏขึ้น
เพื่อแก้ไขที่อยู่แต่จะไม่สามารถส่งหรือรับแพ็กเก็ตใดๆ ได้ นี้ไม่
ไม่ได้หมายความว่าเครือข่ายไม่ทำงาน
ไม่สามารถรับการเชื่อมต่อได้
เครือข่ายผู้ใช้ QEMU ไม่สามารถรับการเชื่อมต่อขาเข้าได้
กำลังสร้างการเชื่อมต่อ TCP
อุปกรณ์ช่วยชีวิตต้องมีขนาดเล็กและไม่รวมถึงเครือข่ายจำนวนมาก
เครื่องมือ โดยเฉพาะอย่างยิ่งไม่มี Telnet(1) คำสั่ง คุณสามารถสร้างการเชื่อมต่อ TCP
จากเปลือกโดยใช้เวทย์มนตร์ /dev/tcp/ / ไวยากรณ์:
exec 3<>/dev/tcp/redhat.com/80
echo "GET /" >&3
แมว <&3
ดู ทุบตี(1) สำหรับรายละเอียดเพิ่มเติม
จับภาพ CORE ดัมพ์
หากคุณกำลังทดสอบเครื่องมือภายใน virt-rescue และเครื่องมือ (ไม่ virt-rescue) segfaults มัน
อาจเป็นเรื่องยากที่จะดักจับ core dump นอก virt-rescue เพื่อการวิเคราะห์ในภายหลัง นี้
ส่วนนี้จะอธิบายวิธีหนึ่งในการทำสิ่งนี้
1. สร้างดิสก์เริ่มต้นสำหรับการถ่ายโอนข้อมูลหลัก:
ตัดทอน -s 4G /tmp/corefiles
รูปแบบ virt --partition=mbr --filesystem=ext2 -a /tmp/corefiles
virt-filesystems -a /tmp/corefiles --all --long -h
2. เมื่อเริ่มต้น virt-rescue ให้แนบไฟล์ core files ดิสก์ล่าสุด:
virt-rescue --rw [-a ...] -a /tmp/corefiles
NB ถ้าคุณใช้ --ร ตัวเลือกจากนั้น virt-rescue จะไม่เขียน core ใด ๆ อย่างเงียบ ๆ
ไฟล์ไปที่ /tmp/corefiles.
3. ภายใน virt-rescue ติดตั้งดิสก์ไฟล์หลัก หมายเหตุแทนที่ / dev / sdb1 กับสุดท้าย
ดัชนีดิสก์ ตัวอย่างเช่น หากดิสก์คอร์ไฟล์เป็นดิสก์สี่ตัวสุดท้าย คุณจะ
ใช้ /dev/sdd1.
> mkdir /tmp/mnt
> เมานต์ /dev/sdb1 /tmp/mnt
4. เปิดใช้งานการดัมพ์หลักในเคอร์เนลกู้ภัย:
> echo '/tmp/mnt/core.%p' > /proc/sys/kernel/core_pattern
> ulimit -Hc unlimited
> ulimit -Sc ไม่ จำกัด
5. เรียกใช้เครื่องมือที่ทำให้เกิดคอร์ดัมพ์ การถ่ายโอนข้อมูลหลักจะถูกเขียนถึง
/tmp/mnt/core.PID.
> ls -l /tmp/mnt
รวม 1628
-rw------- 1 รูทรูท 1941504 7 ธ.ค. 13:13 core.130
drwx------ รูท 2 รูท 16384 7 ธ.ค. 13:00 น. สูญหาย+พบ
6. ก่อนออกจาก virt-rescue ให้ยกเลิกการต่อเชื่อม (หรืออย่างน้อยก็ซิงค์) ดิสก์:
> umount /tmp/mnt
> ทางออก
7. นอก virt-rescue แกนดัมพ์สามารถลบออกจากดิสก์ได้โดยใช้ ปลาแขก(1)
ตัวอย่างเช่น:
เกสต์ฟิช --ro -a /tmp/corefiles -m /dev/sda1
> NS /
> ดาวน์โหลด /core.NNN /tmp/core.NNN
และพวกเรา ตัวแปร
ตัวแปรสภาพแวดล้อมหลายอย่างส่งผลต่อ virt-rescue ดู "ตัวแปรสิ่งแวดล้อม" ใน
แขก(3) สำหรับรายการทั้งหมด
ใช้ virt-rescue ออนไลน์โดยใช้บริการ onworks.net