VMware Workstation ใช้ฟิสิคัลดิสก์ EFI


2

ฉันกำลังพยายามตั้งค่า VMware Virtual Machine ภายใต้โฮสต์ Windows 10

ปัจจุบันฉันมีฮาร์ดไดรฟ์ 1 ตัวแบ่งออกเป็น 2 พาร์ติชันโดยใช้ Ubuntu พร้อมบู๊ตคู่

ฉันต้องการติดตั้ง Ubuntu ในฐานะแขกในโฮสต์ Windows

ฉันพยายามเซ็ตอัพพาร์ติชัน Ubuntu โดยใช้ตัวเลือกดิสก์ทางกายภาพภายใต้ VMware (ฉันลอง IDE, SCSI, Sata) ถ้าฉันบอกให้ VMware ใช้ทั้งดิสก์ฉันจะได้รับข้อความ "มีการใช้ดิสก์ปัจจุบัน" ถ้าฉันเลือกเฉพาะพาร์ติชั่น Linux ที่เกี่ยวข้องมันจะพูดว่า "ไม่พบระบบปฏิบัติการ"

มีอะไรแปลกใหม่คือพาร์ติชัน Linux ของฉันแสดงเป็น "ระบบ Efi" ภายใต้คอลัมน์ระบบไฟล์ในขณะที่ฉันคิดว่าควรจะพูดว่า "Linux" ภายใต้ระบบไฟล์ ฉันควรลองเปลี่ยนระบบไฟล์ของพาร์ติชันนั้นเป็น Linux แทน Efi ก่อนหรือไม่? (ฉันจะทำอย่างนั้นได้อย่างไร)

VMware ควรจะให้ฉันเรียกใช้พาร์ติชั่น Ubuntu ในฐานะแขกแม้ว่ามันจะอยู่ในฮาร์ดไดรฟ์เดียวกับโฮสต์ใช่ไหม?

แก้ไข: เพื่อชี้แจงข้อมูลข้างต้นจะถูกรายงานโดย VMware-Workstation

อย่างไรก็ตามภายใต้ Ubuntu Gparted นี่คือลักษณะของพาร์ติชันของฉัน:

ฮาร์ดไดรฟ์ SSD ปัจจุบันของฉันติดตั้งด้วยวิธีนี้ (ตาม Linux GParted)

  • / dev / nvme0n1p1 ntfs (diag)
  • / dev / nvme0n1p2 fat32 (boot, esp)
  • / dev / nvme0n1p3 ไม่รู้จัก (msftres) [Microsoft Reserved Partition ไม่ว่าจะเป็นอะไร]
  • / dev / nvme0n1p4 ntfs (msftdata) [นี่คือพาร์ติชัน Windows 10]
  • / dev / nvme0n1p5 ext4 (boot, esp) [นี่คือพาร์ทิชัน Ubuntu ของฉัน]
  • / dev / nvme0n1p6 linux-swap
  • / dev / nvme0n1p7 ntfs (ซ่อน, diag)

GParted ยังรายงานว่าจุดเชื่อมต่อ / อยู่ใน nvme0n1p5 & amp; จุดเชื่อมต่อ / boot / efi บน nvme0n1p2

[ตอนนี้ฉันสับสนเครื่องอูบุนตูของฉันบูตจาก nvme0n1p5 (พร้อม flag boot) หรือ nvme0n1p2 (พร้อม mount point / boot / efi) ไหม]

อย่างไรก็ตามฉันได้พยายามแนบทั้งสองพาร์ติชั่นเข้ากับตัวเลือกฮาร์ดไดรฟ์ดิสก์ทางกายภาพของ Windows 10 VMWare-Workstation แต่เครื่องยังไม่สามารถบูตแขก Ubuntu ได้

ฉันสามารถดูอัลบูต (โดยการสลับ "คำสั่งฮาร์ดไดรฟ์" ใน BIOS - [แม้จะมีฮาร์ดไดรฟ์เพียงอันเดียว!]) แต่สิ่งที่ฉันต้องการจะทำคือการบูต & amp; เรียกใช้พาร์ติชัน Ubuntu จากภายใน Windows

แก้ไข 2:

ฉันคิดว่าฉันอาจจะเข้าใจปัญหาอีกเล็กน้อย:

  1. เมื่อบูตครั้งแรกฉันเลือก Windows 10 EFI เป็นตัวเลือกการบูต
  2. ใน windows ฉันตั้งค่าเครื่องเสมือนเพื่อเรียกใช้พาร์ติชันที่สองในฮาร์ดไดรฟ์เดียวกันที่กำลังเรียกใช้เป็นโฮสต์
  3. แต่ในการบู๊ตพาร์ติชั่นที่สองฉันต้องบอกให้การตั้งค่าเครื่องเสมือนเพื่อเรียกใช้ตัวจัดการการบูต EFI เดียวกับ
  4. มันล้มเหลวในการเรียกใช้ตัวจัดการการบูตของ EFI (ใช้งานอยู่หรือไม่) และส่งฉันไปที่ Internal EFI shell
  5. จาก EFI Shell ฉันสามารถเลือกระบบไฟล์และ cd ลงใน / efi / boot และดูไฟล์. fi ได้ที่นั่น แต่ฉันไม่รู้วิธีบูตจากไฟล์. fei เหล่านั้น

ใครช่วยบอกวิธีการบู๊ตไฟล์ .efi จาก Internal EFI Shell ได้บ้าง?


สองคำถาม: 1) คุณใช้อะไร? ([VMware] เป็น บริษัท โปรดเปลี่ยนแท็กเป็น [vmware-player], [wmware-workstation] ฯลฯ ) 2) [u] EFI ใช้พาร์ติชัน FAT32 เพื่อบูตระบบปฏิบัติการทั้งหมดจาก อาจใช้งานได้ คุณช่วยให้ชัดขึ้นว่าคุณหมายถึงอะไรเมื่อคุณเขียน linu xis ที่แสดงเป็นระบบ efi
Hennes

ขอบคุณหรือคำตอบ 1) การทดลองใช้ VMware-Workstation 2) ฉันได้อัปเดตโครงสร้างฮาร์ดไดรฟ์ปัจจุบันของฉันในโพสต์ดั้งเดิม
Azrudi

ฉันคิดว่าปัญหาของฉันคือระบบ EFI ฉันลองใช้ Oracle Virtualbox และผ่านการตั้งค่า vboxmanage เพื่อใช้ดิสก์ดิบ - และเมื่อฉันแนบดิสก์ดิบกับ Virtualbox แล้วจะยังไม่ให้ฉันบูตตามปกติหรือเป็น EFI 1) การบูทตามปกติไม่พบระบบปฏิบัติการ 2) การเลือก "บูท EFI แทนไบออส" พาฉันไปที่เมนูเชลล์ภายในของ EFI ที่แปลกและฉันสามารถกลับไปที่ EFI Boot Manager และไปที่ "ตั้งค่าตัวเลือกการบูต" เพื่อค้นหา grubx64.efi แต่การเลือกไฟล์นั้นไม่ทำอะไรเลย แต่ฉันกำลังแทงอยู่ในความมืดจริง ๆ
Azrudi

ESP (พาร์ติชันระบบ EFI) คือพาร์ติชันที่มักใช้ในการเก็บ bootloaders ทั้งหมด ระบบปฏิบัติการ. โดยปกติจะมีเพียงหนึ่ง sunch partition และถ้าคุณมี MAC มันจะถูกฟอร์แมตด้วย FAT32 ตอนนี้เมื่อฉันดู / dev / nvme0n1p5 ฉันเห็นว่ามันเป็น ext4 และเป็นพาร์ติชัน Ubuntu ของคุณ มันถูกทำเครื่องหมายโดยเฉพาะ นั่นทำให้ฉันสับสน
Hennes

ใหม่ 3) ฉันไม่อยู่ที่นี่ แต่คุณสามารถตรวจสอบได้หรือไม่ว่า ESP ไม่ได้ติดตั้งโดย windows ดูเหมือนว่าเวลาส่วนใหญ่ของ windows จะปล่อยให้มันอยู่ตามลำพัง (ฉันต้องบังคับให้ windows ปัจจุบันของฉันติดตั้งเพื่อทำแผนที่อักษรระบุไดรฟ์) แต่การตรวจสอบความเจ็บปวดใหม่ โพสต์ที่ดีเป็นอย่างอื่น ฉันหวังว่ามันจะได้รับคำตอบด้วยวิธีแก้ปัญหาที่เหมาะสม
Hennes

คำตอบ:


2

บางส่วนได้รับการกล่าวถึงในความคิดเห็นแล้วและฉันไม่ใช่ผู้เชี่ยวชาญเกี่ยวกับผลิตภัณฑ์ VMware แต่:

ปัญหาแรกของคุณคือรหัสประเภทพาร์ติชันเปิด /dev/nvme0n1p5. ตามที่คุณ parted สรุปพาร์ติชั่นนี้มีการตั้งค่าสถานะ "boot, esp" (ด้วยเหตุผลที่น่าจะเป็นการพูดนอกเรื่อง "บูท" และ "esp" เป็นชื่อแฟล็กซ้ำซ้อนที่อ้างถึงสิ่งเดียวกันดังนั้นจึงมักปรากฏด้วยกันในเวอร์ชันล่าสุดของ parted.) ใน parted, "ค่าสถานะ" บนดิสก์ GPT อาจเป็นแอตทริบิวต์พาร์ติชันหรือรหัสประเภทพาร์ติชันและค่าสถานะ "boot, esp" เป็นรหัสประเภท พาร์ติชันระบบ EFI (ESP) ธงนี้ควร ไม่ ถูกตั้งค่าบนรูต Linux ( / ) partition - หรือบน Linux อื่น ๆ ตามที่หน้า Wikipedia ที่ฉันเชื่อมโยงอธิบายไว้ ESP เป็นพาร์ติชัน FAT ที่เก็บบูตโหลดเดอร์และไฟล์ที่เกี่ยวข้องสำหรับระบบปฏิบัติการทั้งหมด ของคุณ /dev/nvme0n1p5 ควรใช้รหัสประเภทข้อมูลระบบไฟล์ลินุกซ์ซึ่ง parted ระบุว่าไม่มีแฟล็กประเภทรหัสพาร์ติชันบนพาร์ติชันที่มีระบบไฟล์ Linux

อย่างน้อยที่สุดคุณจะต้องให้สิทธิ์การเข้าถึง VMware แก่ทั้งคู่ /dev/nvme0n1p2 และ /dev/nvme0n1p5แต่คุณอาจต้องการให้สิทธิ์การเข้าถึง /dev/nvme0n1p6เช่นกันเนื่องจากนั่นเป็นพื้นที่สลับ Linux การแก้ไขปัญหาการเข้าถึงพาร์ติชันนี้จะไม่สามารถแก้ไขปัญหาโดยรวมของคุณได้ แต่อาจเป็นข้อกำหนดเบื้องต้นที่จำเป็น

สำหรับส่วนที่เหลือฉันขอแนะนำให้คุณอ่านเกี่ยวกับวิธีการบูทคอมพิวเตอร์ที่ใช้ EFI โดยเฉพาะให้อ่านอย่างน้อยหนึ่งข้อและโดยเฉพาะอย่างยิ่งทั้งสามข้อต่อไปนี้:

เชลล์ EFI ภายในที่คุณอธิบายนั้นคล้ายกับ DOS prompt, หน้าต่าง Command Prompt ใน Windows หรือ Bash shell ใน Linux คุณสามารถใช้คำสั่งเช่น cd เพื่อเปลี่ยนไดเรกทอรี ls หรือ dir เพื่อดูไฟล์ ฯลฯ ; คำสั่งเหล่านี้ส่วนใหญ่จะยืมจาก DOS / Windows หรือ Unix โปรแกรม EFI รวมถึง EFI boot loader นั้นมี .efi ส่วนขยายและคุณเรียกใช้โดยพิมพ์ชื่อของพวกเขาเช่นเดียวกับใน:

bootloader.efi

Ubuntu ติดตั้ง boot loader ของ EFI เป็น EFI\ubuntu\grubx64.efiแม้ว่าจะเปิดตัวผ่านทาง pre-bootloader shimx64.efi. Shim ได้ลงนามโดย Secure Boot key ของ Microsoft และขยายระบบย่อย Secure Boot ของคอมพิวเตอร์เพื่อให้ GRUB และเคอร์เนล Linux สามารถบู๊ต คุณจะต้องเปิดตัวผ่าน shimx64.efi หากสภาพแวดล้อมเสมือนจริงของคุณถูกตั้งค่าโดยเปิดใช้งาน Secure Boot ถ้าไม่คุณสามารถเรียกใช้อย่างใดอย่างหนึ่ง shimx64.efi หรือ grubx64.efi.

สิ่งหนึ่งที่ทำให้เกิดความยุ่งยากคือด้วงอาจทำให้มุมมองของดิสก์ที่ไม่ตรงกับดิสก์ดั้งเดิม - นั่นคือถ้าพาร์ติชัน 5 ที่แท้จริงดูเหมือนจะเป็นพาร์ติชัน 2 ด้วงอาจหลุดลอกและทำงาน หากสิ่งนี้เกิดขึ้นฉันขอแนะนำให้เปลี่ยนไปใช้ตัวโหลดบูตอื่นสำหรับสภาพแวดล้อมอย่างน้อยหนึ่งสภาพแวดล้อม (จริงกับเสมือนจริง) หากแต่ละสภาพแวดล้อมใช้บูทโหลดเดอร์ของตัวเองการกำหนดค่าของพวกเขาอาจแตกต่างกันอย่างรุนแรงและสภาพแวดล้อมทั้งสองนั้นจะไม่ก้าวต่อกัน นอกจากนี้บูตโหลดเดอร์บางตัวไม่สนใจหมายเลขพาร์ติชันที่เปลี่ยนไป นี่เป็นเรื่องจริงสำหรับฉัน rEFInd ตัวจัดการการบูต เช่น ฉันอยากจะเน้นว่า ไม่รู้ ถ้าด้วงจะแตกออก โดยทั่วไปไฟล์การกำหนดค่าของมันจะมีการอ้างอิงไปยังหมายเลขพาร์ติชัน (ซึ่งแนะนำว่าอาจจะหลุดออกมา) แต่ก็ยังมีคำสั่ง "ค้นหา" ที่อาจแทนที่เหล่านั้น นอกจากนี้ฉันไม่รู้ว่า VMware จัดการการแม็พพาร์ทิชันได้อย่างไร พวกเขาอาจเก็บหมายเลขพาร์ติชันเดียวกันซึ่งในกรณีนี้ไม่ควรมีปัญหาเนื่องจากสิ่งนี้

คำถามอื่นคือโฮสต์ระบบปฏิบัติการจะอนุญาตให้คุณแมป ESP ได้หรือไม่เนื่องจากอาจมีการใช้งานหรือไม่รองรับการทำงานนี้ ถ้าเป็นเช่นนั้นคุณอาจต้องสร้างดิสก์เสมือนหรือพาร์ติชันอื่นเพื่อใช้เป็น ESP สำหรับสภาพแวดล้อมเสมือน จากนั้นคุณสามารถคัดลอกบูตโหลดเดอร์จาก ESP จริงไปยังเวอร์ช่วลเรดิโอหรือติดตั้งบูตโหลดเดอร์ตัวอื่น

ในที่สุดตามที่อธิบายในการอ่านที่ฉันแนะนำคอมพิวเตอร์ที่ใช้ EFI อาศัยข้อมูล NVRAM-resident ในการค้นหาบูทโหลดเดอร์ ซอฟต์แวร์จำลองเสมือนส่วนใหญ่สร้างข้อมูล NVRAM "ปลอม" ดังนั้น VM จะไม่บูตตามปกติเว้นแต่คุณจะสร้างรายการ NVRAM ใหม่ให้ชี้ไปที่บูตโหลดเดอร์ คุณสามารถใช้เชลล์ EFI เพื่อเปิดระบบปฏิบัติการของคุณหนึ่งครั้ง แต่จากนั้นคุณจะต้องลงทะเบียนบูตโหลดเดอร์ด้วย VM ใน Ubuntu คุณจะต้องใช้ efibootmgr เพื่อทำสิ่งนี้:

sudo efibootmgr -c -d /dev/sda -p 1 -l \\EFI\\ubuntu\\grubx64.efi -L ubuntu

ตัวอย่างนี้บันทึก \EFI\ubuntu\grubx64.efi บน Ubuntu /dev/sda1 เป็นบูตโหลดเดอร์ คุณต้องเปลี่ยนรายละเอียดตามที่จำเป็นสำหรับการตั้งค่าของคุณ โปรดทราบว่าหมายเลขดิสก์และพาร์ติชันนั้นอยู่ในเครื่องเสมือนไม่ใช่ในสภาพแวดล้อมโฮสต์

ข้อแม้อย่างหนึ่งคือ VMs บางตัว "ลืม" รายการ NVRAM เมื่อคุณปิดมัน นี่เป็นความจริงของ VirtualBox ตัวอย่างเช่น ฉันไม่รู้ว่า VMware ทำได้ดีกว่านี้หรือไม่ หากไม่มีคุณอาจต้องคัดลอกบูตโหลดเดอร์ไปยังชื่อไฟล์สำรอง ( EFI\BOOT\bootx64.efi ) ใน ESP วิธีการนี้อธิบายรายละเอียดเพิ่มเติมในหน้าเว็บของฉันบนตักบูต EFI และฉันคิดว่าในบล็อกของ Adam Williamson


ขอบคุณฉันจะไปคืนนี้ ดูเหมือนจะครอบคลุมมาก ฉันต้องการถามตอนนี้ แต่เพียงเพื่อชี้แจง: ฉันควรจะสามารถพิมพ์ shimx64.efi ในไดเรกทอรีใน (ฉันคิดว่า / boot / EFI) เปลือก EFI ภายในและถ้าไม่มีปัญหาอื่น ๆ ฉันควรจะ สามารถบูตแขก Linux ได้หรือไม่ ฉันจะอ่านบล็อกและคำตอบของคุณในรายละเอียดเพิ่มเติมเมื่อฉันกลับบ้านคืนนี้ ฉันลบบูตและตั้งค่าสถานะ esp ใน nvme0n1p5 โดยใช้ตัวช่วยสร้างพาร์ติชัน Minitool ฟรีสำหรับ Windows แต่ก็ยังไม่เห็นความแตกต่างก่อนการตอบกลับของคุณ
Azrudi

สวัสดี Rod ฉันอ่านจากลิงค์ที่สาม ส่วนใหญ่มันค่อนข้างหัวของฉันในขณะนี้ แต่ฉันอ่านส่วนเกี่ยวกับ EFI ต้นขั้ว ฉันพยายามทำซ้ำ แต่มีข้อผิดพลาดแปลก ๆ ที่ฉันไม่เข้าใจ: i.imgur.com/F4RRACw.png มันบอกว่าพารามิเตอร์ที่ไม่ถูกต้อง แต่ฉันได้รวมพารามิเตอร์ที่เกี่ยวข้องทั้งหมดแล้ว คุณช่วยแปลเป็นคนธรรมดาได้ไหม? โปรดทราบว่าฉันคิดว่าพาร์ติชัน EFI นั้นใช้ได้เพราะฉันสามารถบูต Ubuntu ได้ถ้าฉันบูตจาก BIOS (อันที่ฉันกดปุ่ม del เมื่อโลโก้ของผู้ผลิตปรากฏขึ้น)
Azrudi

3
ฉันได้มันไปทำงาน! ทำการเปลี่ยนแปลง 3 รายการ: 1) ลบการบูต & amp; การตั้งค่าสถานะ esp ด้วย Minitool Partition Wizard และระบุว่าเป็นพาร์ติชัน msftdata (หรือ Partition ID = พาร์ทิชันข้อมูลพื้นฐาน Windows ใน Minitool) 2) เปลี่ยนภายใต้ VM & gt; การตั้งค่า & gt; ตัวเลือก & gt; ทั่วไป & gt; ภายใต้ VM & gt; การตั้งค่า & gt; ฮาร์ดดิสก์ (SCSI) & gt; ตรวจสอบพาร์ติชัน EFI, รากพาร์ติชันและสลับพาร์ติชัน, จากนั้นคลิกปุ่มขั้นสูงและเลือกโหมด & เลือก & gt; อิสระ & gt; ไม่ถาวรตอนนี้ทำงาน! หากไม่มี (3) ฉันได้รับ "ฮาร์ดดิสก์ที่ไม่สามารถเข้าถึงได้ \\. \ PhysicalDrive0" ทำเครื่องหมายว่านี่เป็นวิธีแก้ปัญหา
Azrudi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.