ตอบคำถามของตัวเอง จะรักความคิดเห็นบางอย่างแม้ว่าบางส่วนจะดูลึกลับ
ปรากฎว่าซับซ้อนกว่าที่ฉันคิดไว้มาก.. นี่คือบันทึกที่ฉันทำไว้ - มีผลลัพธ์มากมายที่อาจเฉพาะเจาะจงกับสถานการณ์ของฉัน อะไรก็ตามที่ขึ้นต้นด้วย "<<<<" เป็นความคิดเห็น! ห้ามลอกเลียนแบบ!:
ปัญหา: คัดลอกอิมเมจเซิร์ฟเวอร์เก่า qemu 40G LV เป็น 50G LV ใหม่
จำเป็นต้องปรับขนาดระบบไฟล์เป็น 50G
root@virtual3:~# ssh oldserver "dd bs=1M if=/dev/oldvg/oldnstest" | \
           สถานะ dd = ความคืบหน้าของ = / dev / vg-main / nstest
root@virtual3:~# scp oldserver:/etc/libvirt/quemu/oldnstest.xml /etc/libvirt/qemu/nstest.xml
.... แก้ไข nstest.xml ตามต้องการและ virsh กำหนด nstest.xml
ฉันพบบิตและข้อผิดพลาดที่ขาดหายไป แต่อ้างอิงจากหน้านี้เป็นหลัก:
https://subscription.packtpub.com/book/virtualization-and-cloud/9781788294676/1/ch01lvl1sec14/resizing-an-image
  root@virtual3:~# ข้อมูล qemu-img /dev/vg-main/nstest 
    ภาพ: /dev/vg-main/nstest
    รูปแบบไฟล์: ดิบ
    ขนาดเสมือน: 50 GiB (53687091200 ไบต์)
    ขนาดดิสก์: 0 B
  root@virtual3:~# สูญเสีย -f
    /dev/loop0
  root@virtual3:~# สูญเสีย /dev/loop0 /dev/vg-main/nstest 
  root@virtual3:~# kpartx -av /dev/loop0
    GPT: ส่วนหัวหลักคิดว่า Alt ส่วนหัวไม่ได้อยู่ที่ส่วนท้ายของดิสก์
    GPT:ส่วนหัว GPT สำรองไม่ได้อยู่ที่ส่วนท้ายของดิสก์
    GPT: ใช้ GNU Parted เพื่อแก้ไขข้อผิดพลาด GPT
    เพิ่มแผนที่ loop0p1 (253:3): 0 2048 เชิงเส้น 7:0 2048
    เพิ่มแผนที่ loop0p2 (253:4): 0 85972992 เชิงเส้น 7:0 4096
  root@virtual3:~# parted /dev/vg-main/nstest พิมพ์
    คำเตือน: พื้นที่ว่างสำหรับ /dev/dm-2 ดูเหมือนจะไม่ได้ใช้งานทั้งหมด คุณสามารถทำได้
    แก้ไข GPT เพื่อใช้พื้นที่ทั้งหมด (บล็อกเพิ่มเติม 18877064 บล็อก) หรือดำเนินการต่อ
    การตั้งค่าปัจจุบัน? 
    แก้ไข/ละเว้น? แก้ไข                                                           
    รุ่น: Linux device-mapper (เชิงเส้น) (dm)
    ดิสก์ /dev/dm-2: 53.7GB
    ขนาดเซกเตอร์ (โลจิคัล/กายภาพ): 512B/512B
    ตารางพาร์ทิชัน: gpt
    แฟล็กดิสก์: 
    
    หมายเลข เริ่มต้น ขนาดสิ้นสุด ระบบไฟล์ แฟล็กชื่อ
     1 1049kB 2097kB 1049kB ไบออส_grub
     2 2097kB 44.0GB 44.0GB ต่อ 4
VM ยังคงเริ่มต้นขึ้น - มาดูกันว่าเราจะไปจากที่นี่ได้อย่างไร!
หมายเหตุ เห็นได้ชัดว่าต้องปิดการทำเจอร์นัลเพื่อให้สิ่งนี้ทำงานได้ แต่ e2fsck จะเปิดอีกครั้ง ดูด้านล่าง
  root@virtual3:~# kpartx -av /dev/loop0
    เพิ่มแผนที่ loop0p1 (253:3): 0 2048 เชิงเส้น 7:0 2048
    เพิ่มแผนที่ loop0p2 (253:4): 0 85972992 เชิงเส้น 7:0 4096
  root@virtual3:~# ls -la /dev/mapper/loop0*
    lrwxrwxrwx 1 รูท รูท 7 ม.ค. 56 23:47 /dev/mapper/loop0p1 -> ../dm-3
    lrwxrwxrwx 1 รูท รูท 7 ม.ค. 56 23:47 /dev/mapper/loop0p2 -> ../dm-4
    root@virtual3:~# tune2fs -l /dev/mapper/loop0p2
      .... เยอะแยะ คัดมาสั้นๆ
    คุณสมบัติของระบบไฟล์: has_journal ext_attr resize_inode dir_index .... etc etc
     .... มีอะไรอีกมากมาย .... แต่โปรดสังเกต "has_journal" ด้านบน
  root@virtual3:~# e2fsck /dev/mapper/loop0p2 >>>>>>>>แก้ไขปัญหาเล็กน้อย?
    e2fsck 1.45.5 (07-ม.ค.-2563)
    /dev/mapper/loop0p2: การกู้คืนเจอร์นัล
    การล้างไอโหนดที่ถูกละเลย 788499 (uid=0, gid=0, mode=0100644, size=113)
    การล้างไอโหนดที่ถูกละเลย 531614 (uid=0, gid=0, mode=0100666, size=0)
    การล้างไอโหนดที่ถูกละเลย 531613 (uid=112, gid=117, mode=0100600, size=0)
    การล้างไอโหนดที่ถูกละเลย 531610 (uid=112, gid=117, mode=0100600, size=0)
    การล้างไอโหนดที่ถูกละเลย 531609 (uid=112, gid=117, mode=0100600, size=0)
    การล้างไอโหนดที่ถูกละเลย 531606 (uid=112, gid=117, mode=0100600, size=0)
    การตั้งค่า inodes ฟรีนับเป็น 2511295 (เดิมคือ 2511334)
    การตั้งค่าบล็อกฟรีนับเป็น 6187161 (เดิมคือ 6192365)
    /dev/mapper/loop0p2: สะอาด, 175681/2686976 ไฟล์, 4559463/10746624 บล็อก
  root@virtual3:~# tune2fs -O ^has_journal /dev/mapper/loop0p2 >>>> หมายเหตุ: cap O
   tune2fs 1.45.5 (07-ม.ค.-2563)
  root@virtual3:~# tune2fs -l /dev/mapper/loop0p2 | grep "คุณสมบัติ"
   คุณลักษณะของระบบไฟล์: ext_attr resize_inode dir_index .... ฯลฯ เป็นต้น
  root@virtual3:~# kpartx -dv /dev/loop0
   เดล devmap : loop0p2
   เดล devmap : loop0p1
  root@virtual3:~# สูญเสีย -d /dev/loop0
  root@virtual3:~# modprobe nbd max_parts=8 <<<<< จำเป็นในการสร้าง /dev/nbd*
    (แก้ไข /etc/modprobe ... เพิ่ม nbd เพื่อทำให้ถาวร)
  root@virtual3:~# qemu-nbd --format=raw --connect=/dev/nbd0 /dev/vg-main/nstest 
  root@virtual3:~# fdisk /dev/nbd0
    
    ยินดีต้อนรับสู่ fdisk (util-linux 2.34)
    การเปลี่ยนแปลงจะยังคงอยู่ในหน่วยความจำเท่านั้น จนกว่าคุณจะตัดสินใจเขียน
    ระวังก่อนใช้คำสั่งเขียน
    
    
    คำสั่ง (m เพื่อขอความช่วยเหลือ): p
    ดิสก์ /dev/nbd0: 50 GiB, 53687091200 ไบต์, 104857600 ภาคส่วน
    หน่วย: ภาค 1 * 512 = 512 ไบต์
    ขนาดเซกเตอร์ (โลจิคัล/กายภาพ): 512 ไบต์ / 512 ไบต์
    ขนาด I/O (ต่ำสุด/เหมาะสม): 512 ไบต์ / 512 ไบต์
    ประเภทป้ายชื่อดิสก์: gpt
    ตัวระบุดิสก์: 564A38FB-02AE-4E84-B080-173963955B2E
    
    ประเภทขนาดเซกเตอร์สิ้นสุดการเริ่มต้นของอุปกรณ์
    /dev/nbd0p1 2048 4095 2048 บูต BIOS 1M
    /dev/nbd0p2 4096 85977087 85972992 ระบบไฟล์ Linux 41G
    
    คำสั่ง (m เพื่อขอความช่วยเหลือ): d
    หมายเลขพาร์ติชัน (1,2, ค่าเริ่มต้น 2): 2
    
    พาร์ทิชัน 2 ถูกลบ
    
    คำสั่ง (ม. เพื่อขอความช่วยเหลือ): น
    หมายเลขพาร์ติชัน (2-128, ค่าเริ่มต้น 2): 2
    ภาคแรก (4096-104857566, ค่าเริ่มต้น 4096): 
    เซกเตอร์สุดท้าย +/- เซกเตอร์หรือ +/- ขนาด{K,M,G,T,P} (4096-104857566, ค่าเริ่มต้น 104857566): 
    
    สร้างพาร์ติชันใหม่ 2 ประเภท 'ระบบไฟล์ Linux' และขนาด 50 GiB
    พาร์ติชัน #2 มีลายเซ็น ext4
    
    คุณต้องการลบลายเซ็นหรือไม่? [Y]es/[N]o: n <<<< หมายเหตุ!
    
    คำสั่ง (m เพื่อขอความช่วยเหลือ): w
    
    ตารางพาร์ติชันมีการเปลี่ยนแปลง
    การเรียก ioctl() เพื่ออ่านตารางพาร์ติชันอีกครั้ง
    กำลังซิงค์ดิสก์
    
  root@virtual3:~# qemu-nbd --disconnect /dev/nbd0 <<< ขั้นตอนนี้ไม่ได้อยู่ในหน้าเว็บ
    /dev/nbd0 ถูกตัดการเชื่อมต่อ
  root@virtual3:~# e2fsck -f /dev/mapper/loop0p2
    e2fsck 1.45.5 (07-ม.ค.-2563)
    Superblock มีสมุดรายวันที่ไม่ถูกต้อง (inode 8)
    เคลียร์<y>? ใช่
    *** วารสารถูกลบ ***
    
    การล้างไอโหนดที่ถูกละเลย 788499 (uid=0, gid=0, mode=0100644, size=113)
    ไอโหนดที่ไม่ถูกต้อง 1642119663 ในรายการไอโหนดที่ถูกละเลย
    ผ่าน 1: ตรวจสอบไอโหนด บล็อก และขนาด
    ไอโหนดที่ถูกลบ 531606 มี dtime เป็นศูนย์ แก้ไข<y>? ใช่
    พบ Inodes ที่เป็นส่วนหนึ่งของรายการลิงก์ orphan ที่เสียหาย แก้ไข<y>? ใช่
    Inode 531609 เป็นส่วนหนึ่งของรายการ inode ที่ถูกละเลย แก้ไขแล้ว.
    Inode 531610 เป็นส่วนหนึ่งของรายการ inode ที่ถูกละเลย แก้ไขแล้ว.
    Inode 531613 เป็นส่วนหนึ่งของรายการ inode ที่ถูกละเลย แก้ไขแล้ว.
    Inode 531614 เป็นส่วนหนึ่งของรายการ inode ที่ถูกละเลย แก้ไขแล้ว.
    ผ่าน 2: การตรวจสอบโครงสร้างไดเร็กทอรี
    ผ่าน 3: ตรวจสอบการเชื่อมต่อไดเร็กทอรี
    ผ่าน 4: ตรวจสอบจำนวนอ้างอิง
    ผ่าน 5: ตรวจสอบข้อมูลสรุปของกลุ่ม
    บล็อกฟรีนับผิดสำหรับกลุ่ม #97 (21582, นับ=21583)
    แก้ไข<y>? ใช่
    บล็อคฟรีนับผิด (6192364, นับ=6252696)
    แก้ไข<y>? ใช่
    ความแตกต่างของบิตแมปไอโหนด: -531606 -(531609--531610) -(531613--531614) -788499
    แก้ไข<y>? ใช่
    inodes ฟรีนับผิดสำหรับกลุ่ม # 64 (869, นับ = 874)
    แก้ไข<y>? ใช่
    inodes ฟรีนับผิดสำหรับกลุ่ม # 96 (2772, นับ = 2773)
    แก้ไข<y>? ใช่
    ไอโหนดฟรีนับผิด (2511328, นับ=2511295)
    แก้ไข<y>? ใช่
    ความแตกต่างของบิตแมปบล็อก: บิตแมปบล็อกกลุ่ม 97 ไม่ตรงกับผลรวมการตรวจสอบ
    แก้ไขแล้ว.
    สร้างบันทึกใหม่ ('a' เปิดใช้งาน 'ใช่' กับทุกคน) <y>? ใช่ทั้งหมด
    การสร้างสมุดรายวัน (65536 บล็อก): เสร็จสิ้น
    
    *** วารสารถูกสร้างขึ้นใหม่ ***
    
    /dev/mapper/loop0p2: ***** ระบบไฟล์ถูกแก้ไข *****
    /dev/mapper/loop0p2: 175681/2686976 ไฟล์ (0.6% ไม่ติดกัน), 4559464/10746624 บล็อก
  root@virtual3:~# resize2fs /dev/mapper/loop0p2 <<<< เว็บเพจ NB อ้างอิง /dev/nbd0
    resize2fs 1.45.5 (07-ม.ค.-2563)
    การปรับขนาดระบบไฟล์บนบล็อก /dev/mapper/loop0p2 เป็น 13106683 (4k)
    ระบบไฟล์บน /dev/mapper/loop0p2 ตอนนี้มีความยาวบล็อก 13106683 (4k)
    
  root@virtual3:~# tune2fs -j /dev/mapper/loop0p2
    tune2fs 1.45.5 (07-ม.ค.-2563)
    ระบบไฟล์มีเจอร์นัลอยู่แล้ว
  root@virtual3:~# kpartx -dv /dev/loop0
    เดล devmap : loop0p2
    เดล devmap : loop0p1
  root@virtual3:~# สูญเสีย -d /dev/loop0
  root@virtual3:~# virsh เริ่มต้น nstest
 แขกไม่สามารถบูตได้อย่างถูกต้อง !!! 
แขกตกลงไปที่เปลือกหอยกู้ภัย ซึ่งฉันได้:
fsck /dev/vda2 
(เข้าสู่ระบบผ่านโปรแกรมดูเดสก์ท็อประยะไกล)
ความไม่สอดคล้องกันหลายอย่างได้รับการแก้ไขแล้ว
นี่อาจเป็นปัญหาของฉันเอง หวังว่าคงไม่ใช่ของคุณ!
Guest ตอนนี้จะบูทแต่ยังเหลือแค่ 41G ........
ตอนนี้ลองอีกครั้ง!
root@virtual3:~# virsh เริ่มต้น nstest
จากนั้นลงชื่อเข้าใช้แขกผ่าน ssh:
  root@ns:~# resize2fs /dev/vda2
    resize2fs 1.45.5 (07-ม.ค.-2563)
    ระบบไฟล์ที่ /dev/vda2 ติดตั้งบน /; จำเป็นต้องปรับขนาดออนไลน์
    old_desc_blocks = 6, new_desc_blocks = 7
    ระบบไฟล์บน /dev/vda2 ตอนนี้มีความยาว 13106683 (4k) บล็อก
    
  รูท@ns:~# df -h
    ขนาดระบบไฟล์ที่ใช้ Avail Use% Mounted on
     ......สนิป.......
    /dev/vda2 49G 17G 31G 36% /
ความสำเร็จ!