Score:1

Ubuntu เพื่อย้ายจากเครื่องเสมือนไปยัง WSL

ธง ve

มีใครพยายามย้าย Ubuntu (ในกรณีนี้คือ 21.10 ที่ใช้งานอยู่) จากเครื่องเสมือน (ขับเคลื่อนโดย VirtualBox หากเป็นกรณีนี้) เป็น WSL การโยกย้ายภายในโฮสต์เดียว

แหล่งที่มาของภาพ (v.m.) จากนั้นกู้คืนไปยังเป้าหมาย (WSL) ทำงานได้ดีเพียงใด ชั้นฮาร์ดแวร์มีโอกาสที่จะแตกต่างกัน

user535733 avatar
cn flag
เคอร์เนล Linux และ systemd init ของ VM ของคุณจะไม่ทำงานบน WSL WSL ใช้เคอร์เนลและ init ของ Microsoft ที่เป็นกรรมสิทธิ์ ทำการทดลองและแจ้งให้เราทราบว่าคุณค้นพบอะไร
NotTheDr01ds avatar
vn flag
@ user535733 เห็นด้วยอย่างยิ่งที่ Systemd init เป็นสิ่งที่ต้องระวัง แม้ว่าเคอร์เนลของ VM จะไม่ทำงาน แต่ฉันไม่แน่ใจว่าจะเรียกเคอร์เนลของ WSL2 ว่า "กรรมสิทธิ์" หรือไม่ แน่นอน มันเป็นทางแยกของเคอร์เนลเมนไลน์ แต่ (ก) ความแตกต่างหลักๆ ตามความรู้ของฉัน เป็นเพียงการใช้ไดรเวอร์ (ข) มันเป็นโอเพ่นซอร์ส (ค) เท่าที่ฉันรู้ การเปลี่ยนแปลงในนั้นมักจะ มีส่วนกลับต้นน้ำ
user535733 avatar
cn flag
@ NotTheDr01ds ขอบคุณสำหรับการปรับแต่ง ฉันได้เรียนรู้สิ่งใหม่ในวันนี้
Score:2
ธง vn

โดยทั่วไป หากคุณสามารถรับ rootfs ของ tarball'd ของ VM ได้ (ในทางทฤษฎี) มันควรจะค่อนข้างตรงไปตรงมา แม้ว่าฉันจะยังไม่ได้ลองก็ตาม เคล็ดลับหลักจะได้รับ rootfs.tar "ถูกต้อง" ข้อพิจารณา:

  • จะต้องรวมระบบไฟล์ "ปกติ" ทั้งหมดจาก VM แต่คุณสามารถเพิกเฉยต่อสิ่งต่าง ๆ เช่น /proc, /ระบบ, /พัฒนาฯลฯ

  • คุณควรรวม --xattr ตั้งค่าสถานะเป็น tar เพื่อให้แน่ใจว่าคุณได้รับแอตทริบิวต์เพิ่มเติม นี่ไม่ใช่ค่าเริ่มต้น

เมื่อคุณมี rootfs tarball ที่ถูกต้องแล้ว การนำเข้าใน WSL นั้นง่ายมาก:

wsl --import Ubuntu2110 <ไดเรกทอรี> <tarball> --เวอร์ชัน 2

อาร์กิวเมนต์แรก (ชื่อการแจกจ่าย) สามารถเป็นอะไรก็ได้ที่คุณต้องการ แต่ฉันขอแนะนำให้หลีกเลี่ยง อูบุนตู เนื่องจากเป็นชื่อของ WSL distro เริ่มต้นและอาจทำให้เกิดข้อขัดแย้งได้

ฉันมักจะตั้งค่า "ไดเร็กทอรี" WSL ของฉัน:

  • ที่ไหนสักแห่งที่ง่ายต่อการเข้าถึงจาก PowerShell เช่น ~\Documents\WSL
  • มี ~\Documents\WSL\instances\Ubuntu2110 (และอื่น ๆ ) สำหรับการแจกแจงของฉัน
  • มี ~\Documents\WSL\images\Ubuntu2110.tar (และอื่น ๆ ) สำหรับภาพ rootfs ของฉัน

ชั้นฮาร์ดแวร์มีโอกาสที่จะแตกต่างกัน

ไม่ใช่ประเด็นที่คุณอาจคิด อินสแตนซ์ WSL2 เป็น "คอนเทนเนอร์" มากกว่า VM ที่นั่น เป็น VM ทำงาน แต่คุณไม่สามารถเข้าถึงได้ VM เองคือสิ่งที่จัดการการนำเข้าและเรียกใช้ distros/instances/container อินสแตนซ์ WSL2 ทั้งหมดใช้พื้นที่เคอร์เนล ฮาร์ดแวร์เสมือน เครือข่าย ฯลฯ เหมือนกัน แต่แต่ละรายการมีเนมสเปซ PID, chroot และอื่นๆ ของตัวเอง (เพื่อสรุปให้ครอบคลุม)


ความแตกต่างระหว่าง WSL และ VM ของคุณ

  • การเริ่มต้นระบบ

    ความแตกต่างที่ใหญ่ที่สุดที่คุณจะพบก็คือ VM ทำการกำหนดค่าทั้งหมดผ่าน Systemd แน่นอน สิ่งนี้จะไม่เกิดขึ้นกับ WSL2 เนื่องจากระบบไม่รองรับ Systemd WSL ใช้ของตัวเองแทน /ในนั้น สำหรับการบูตการทำงานร่วมกันกับระบบ VM และ Windows

    นั่นหมายความว่า เมื่อคุณเริ่มต้นอินสแตนซ์ WSL2 จาก VM ที่อิมพอร์ต ไม่มีอะไร กำลังจะวิ่ง

    คุณจะต้องเริ่มแต่ละบริการด้วยตนเอง หรือใช้ เทคนิคอื่น ๆ เพื่อเริ่มต้นโดยอัตโนมัติ.

  • ปัญหา Systemd อื่น ๆ

    แม้ว่าคุณจะสามารถเริ่มบริการต่างๆ ใน ​​Ubuntu ได้โดยไม่ต้องใช้ Systemd แต่ก็มีจำนวนมากขึ้นเรื่อยๆ ที่พึ่งพา Systemd สิ่งเหล่านี้อาจเป็นปัญหาได้ภายใต้ WSL แม้ว่าจะมีวิธีแก้ไขปัญหาในการเรียกใช้ Systemd ใน WSL แต่ปัจจุบันมีแนวโน้มที่จะ "แฮ็ก"

  • แอพ GUI

    นอกจากนี้ โปรดจำไว้ว่า WSL คือ เป็นหลัก สภาพแวดล้อมบรรทัดคำสั่ง ในการเรียกใช้แอพ GUI คุณจะต้องเรียกใช้อย่างใดอย่างหนึ่ง:

    • วินโดวส์ 11
    • เซิร์ฟเวอร์ X ของบริษัทอื่นใน Windows
    • หรือ xrdp
  • สภาพแวดล้อมเดสก์ท็อป

    ประการสุดท้าย สภาพแวดล้อมเดสก์ท็อปอาจมีความท้าทายมากยิ่งขึ้น ด้วยเหตุผลหลายประการข้างต้นและอื่นๆ:

    • บางคนต้องการ Systemd
    • การเรียกใช้แอพ Linux GUI แบบเต็มหน้าจอใน Windows อาจทำให้เกิดปัญหาในการผูกคีย์ได้ (เช่น Alt+แท็บ จะถูกขัดขวางโดย Windows และย้ายออกจาก DE ของคุณ)
    • WSLg ใน Windows 11 ใช้ Weston ซึ่งมีตัวจัดการหน้าต่างของตัวเอง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา