วาง MacOS Catalina ไว้ในกล่อง Vagrant
บางลำดับสั้นลง เวลาทำงานดั้งเดิม 14.5 นาที
รองรับการสร้างกล่องใน 'VMware_Fusion', 'VMware_Desktop', 'Parallels' หรือ 'VirtualBox' รูปแบบ
จำเป็นต้องใช้ซอฟต์แวร์ต่อไปนี้ รุ่นอื่นนอกเหนือจากที่กล่าวถึงอาจใช้งานได้ แต่นี่เป็นเวอร์ชันล่าสุดที่ทดสอบ
ในการบูตกล่องที่สร้างโดย macinbox คุณจะต้อง Vagrant:
ในการสร้างกล่องคุณจะต้องใช้แอปพลิเคชันติดตั้ง MacOS หากคุณใช้โฮสต์ Catalina คุณต้องใช้ตัวติดตั้ง Catalina:
โฮสต์ Catalina ไม่สามารถใช้ก่อนหน้านี้ (เช่น MacOS 10.14 Mojave) ติดตั้งและโฮสต์ Mojave ไม่สามารถใช้ตัวติดตั้ง Catalina ได้
หากคุณใช้โฮสต์โมฮาวีคุณควรใช้ตัวติดตั้ง Mojave:
ขอแนะนำให้คุณใช้เวอร์ชันเดียวกันสำหรับโฮสต์และตัวติดตั้ง แต่ตัวติดตั้ง MacOS เวอร์ชันก่อนหน้า (เช่น MacOS 10.13 High Sierra) อาจทำงานร่วมกับโฮสต์ Mojave และในทางกลับกัน
หมายเหตุ: หากคุณมีคำถามเกี่ยวกับการอนุญาตให้ใช้ MACOS เสมือนจริงคุณอาจต้องการตรวจสอบเอกสารสำหรับซอฟต์แวร์เสมือนจริงที่คุณใช้และข้อตกลงสิทธิ์การใช้งานซอฟต์แวร์สำหรับ MACOS
จำเป็นต้องใช้แอปพลิเคชั่นเสมือนจริงต่อไปนี้:
ในการสร้างและบูตกล่องในรูปแบบ 'vmware_fusion' หรือ 'vmware_desktop' ที่คุณต้องการ:
ในการสร้างและบูตกล่องในรูปแบบ 'แนว' ที่คุณต้องการ:
ในการสร้างและบูตกล่องในรูปแบบ 'VirtualBox' ที่คุณต้องการ:
ติดตั้งอัญมณี:
$ sudo gem install macinbox
เรียกใช้กับ sudo และไม่มีอาร์กิวเมนต์เครื่องมือ macinbox จะสร้างและเพิ่มกล่อง vmware vagrant ชื่อ 'macinbox' ซึ่งบูทเต็มหน้าจอลงในเดสก์ท็อปของผู้ใช้ 'vagrant':
$ sudo macinbox
โปรดอดทนเพราะอาจใช้เวลาสักครู่ (ใน 2.5 GHz MacBookPro11,5 ใช้เวลาประมาณ 11 นาที 30 วินาที) หลังจากเครื่องมือเสร็จสิ้นคุณสามารถสร้างสภาพแวดล้อม Vagrant ใหม่พร้อมกล่องและเริ่มต้น:
$ vagrant init macinbox && vagrant up
ไม่กี่นาทีหลังจากเรียกใช้คำสั่งนี้คุณจะเห็นการแสดงผลของเครื่องเสมือนของคุณจะปรากฏเต็มหน้าจอเต็มหน้าจอ (กด Command-control-F เพื่อออกจากโหมดเต็มหน้าจอ) หลังจากเครื่องเสมือนเสร็จสมบูรณ์ (ประมาณ 1-2 นาที) คุณจะเห็นเดสก์ท็อปของผู้ใช้ 'vagrant' และสามารถเริ่มใช้เครื่องเสมือน
ในการสร้างกล่องเดสก์ท็อปแนว Parallels ให้ผ่านตัวเลือก --box-format :
$ sudo macinbox --box-format parallels
หากต้องการดูตัวเลือกขั้นสูงให้ผ่านตัวเลือก --help :
Usage: macinbox [options]
--box-format FORMAT Format of the box (default: vmware_desktop)
-n, --name NAME Name of the box (default: macinbox)
-d, --disk SIZE Size (GB) of the disk (default: 64)
-t, --fstype TYPE Type for disk format (default: APFS)
-m, --memory SIZE Size (MB) of the memory (default: 2048)
-c, --cpu COUNT Number of virtual cores (default: 2)
-s, --short NAME Short name of the user (default: vagrant)
-f, --full NAME Full name of the user (default: Vagrant)
-p, --password PASSWORD Password of the user (default: vagrant)
--installer PATH Path to the macOS installer app
--installer-dmg PATH Path to a macOS installer app disk image
--vmware PATH Path to the VMware Fusion app
--parallels PATH Path to the Parallels Desktop app
--user-script PATH Path to user script
--no-auto-login Disable auto login
--no-skip-mini-buddy Show the mini buddy on first login
--no-hidpi Disable HiDPI resolutions
--no-fullscreen Display the virtual machine GUI in a window
--no-gui Disable the GUI
--use-qemu Use qemu-img (vmware_desktop only)
--verbose Enable verbose mode
--debug Enable debug mode
-v, --version
-h, --help
การเปิดใช้งานโหมดการดีบักทำให้ไฟล์ระดับกลาง (อิมเมจดิสก์, VMDK และกล่อง) ได้รับการเก็บรักษาไว้หลังจากเครื่องมือออกแทนที่จะทำความสะอาด คำเตือน!!! ไฟล์กลางเหล่านี้มีขนาดใหญ่มากและคุณสามารถหมดพื้นที่ดิสก์ได้อย่างรวดเร็วเมื่อใช้ตัวเลือกนี้
ตัวอย่างขั้นสูงนี้สร้างและเพิ่มกล่องชื่อ 'macinbox-large-nogui' ด้วย 4 คอร์, 8 GB หรือ RAM และดิสก์ 128 GB; ปิดการเข้าสู่ระบบอัตโนมัติ และป้องกันไม่ให้ VMware GUI แสดงเมื่อเริ่ม VM:
$ sudo macinbox -n macinbox-large-nogui -c 4 -m 8192 -d 128 --no-auto-login --no-gui
หากคุณมีชุดตัวแปรสภาพแวดล้อม vagrant_home และต้องการเพิ่มกล่องที่สร้างขึ้นในไดเรกทอรี 'กล่อง' ในตำแหน่งนั้นคุณจะต้องบอกให้ Sudo ผ่านไปยัง MacInbox เช่น:
$ sudo "VAGRANT_HOME=${VAGRANT_HOME}" macinbox
โดยค่าเริ่มต้น macinbox จะกำหนดค่า Guest OS ให้เปิดใช้งาน HIDPI Resolutions และกำหนดค่าเครื่องเสมือนเพื่อใช้ความละเอียดการแสดงผลแบบดั้งเดิม คุณสามารถปิดการใช้งานพฤติกรรมนี้โดยใช้ตัวเลือก --no-hidpi
โดยค่าเริ่มต้น macinbox จะสร้างกล่อง Vagrant ในรูปแบบ 'VMware_desktop' ด้วยเครื่องมือ VMware ที่ติดตั้งไว้ล่วงหน้า
เมื่อรูปแบบกล่องถูกตั้งค่าเป็น 'parallels' โดยใช้ตัวเลือก --box-format เครื่องมือ PARALLELS จะถูกติดตั้งไว้ล่วงหน้าแทน
เมื่อรูปแบบกล่องถูกตั้งค่าเป็น 'VirtualBox' จะไม่มีการติดตั้งส่วนขยายของแขก โปรดทราบว่าฟีเจอร์บางอย่างมีพฤติกรรมที่แตกต่างจาก VirtualBox ความละเอียดหน้าจอถูกตั้งค่าเป็น 1280x800 และความละเอียด HIDPI ไม่รองรับ ตัวประกอบสเกล GUI ถูกตั้งค่าเป็น 2.0 (เพื่อให้ VM แสดงอย่างถูกต้องบนโฮสต์ที่มีจอแสดงผลเรตินา) เว้นแต่จะใช้ตัวเลือก --no-hidpi สุดท้ายการส่งต่อพอร์ต SSH ถูกเปิดใช้งานโดยค่าเริ่มต้นเพื่อให้โฮสต์สามารถเชื่อมต่อกับแขกได้
หากจำเป็นต้องมีการปรับแต่งกล่องเพิ่มเติมอาจระบุสคริปต์ผู้ใช้โดยใช้ตัวเลือก --user-script สคริปต์จะเรียกใช้หลังจากการติดตั้งระบบปฏิบัติการและจะได้รับพา ธ ไปยังตำแหน่งการติดตั้งเป็นอาร์กิวเมนต์แรกและเดียว สคริปต์จะต้องดำเนินการและออกด้วยรหัสศูนย์หรือการสร้างกล่องจะถูกยกเลิก
ตัวเลือก --installer-dmg ช่วยให้คุณสามารถระบุเส้นทางไปยังอิมเมจดิสก์ที่มีตัวติดตั้ง MacOS และแทนที่ตัวเลือก --installer ภาพดิสก์ที่ระบุไม่ควรติดตั้ง macinbox จะติดตั้งและยกเลิกการเชื่อมต่อตามต้องการ คุณสมบัตินี้ช่วยให้คุณใช้อิมเมจดิสก์ตัวติดตั้งที่สร้างโดย InstallInstallMacos.py ซึ่งเป็นส่วนหนึ่งของเวิร์กโฟลว์ macinbox
เครื่องมือนี้ดำเนินการดังต่อไปนี้:
กล่องที่สร้างขึ้นโดยเครื่องมือนี้มี VagrantFile ในตัวซึ่งปิดใช้งานพฤติกรรม Vagrant เริ่มต้นต่อไปนี้:
ในการเปิดใช้งานการส่งต่อพอร์ต SSH เริ่มต้นอีกครั้งคุณสามารถเพิ่มบรรทัดต่อไปนี้ไปยัง VagrantFile ของสภาพแวดล้อมของคุณ:
config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh"
ในการเปิดใช้งานโฟลเดอร์ที่ซิงค์เริ่มต้นอีกครั้งคุณสามารถเพิ่มบรรทัดต่อไปนี้ไปยัง VagrantFile ของสภาพแวดล้อมของคุณ:
config.vm.synced_folder ".", "/vagrant"
เครื่องมือนี้มีวัตถุประสงค์เพื่อทำทุกอย่างที่ต้องทำเพื่อติดตั้ง MacOS ใหม่ก่อนที่จะทำการบูตครั้งแรกเพื่อเปลี่ยนเป็นกล่อง Vagrant ที่บูท MacOS ด้วยประสบการณ์ผู้ใช้ที่ราบรื่น อย่างไรก็ตามเครื่องมือนี้มีจุดประสงค์เพื่อให้การกำหนดค่าจำนวนน้อยที่สุดเป็นไปได้ ไม่มีอะไรทำที่สามารถรอการตัดบัญชีไปยังขั้นตอนการจัดเตรียมในเทมเพลต Vagrantfile หรือ Packer
โครงการนี้ได้รับแรงบันดาลใจจากผลงานที่ยอดเยี่ยมของผู้อื่น:
โครงการนี้ได้รับแรงบันดาลใจจากตอนของ Mr. Robot ในตอนนี้เอลเลียตจะปรากฏขึ้นอย่างรวดเร็วในการบูตสิ่งที่ดูเหมือนจะเป็นเครื่องเสมือนที่ใช้สภาพแวดล้อมเดสก์ท็อป Linux ใหม่เพื่อตรวจสอบเนื้อหาของซีดีรอมที่ไม่น่าเชื่อถือ ขณะที่ฉันดูฉันคิดว่า "ฉันอยากจะทำสิ่งนั้นกับ macos!" แน่นอนว่าฉันไม่ใช่คนเดียวที่ดาวน์โหลดซอฟต์แวร์ที่ไม่น่าเชื่อถือจากอินเทอร์เน็ตและหวังว่าจะมีวิธีที่ง่ายในการประเมินโดยไม่ทำให้สภาพแวดล้อมการทำงานหลักของฉันตกอยู่ในความเสี่ยงหรือไม่?
โครงการนี้เป็นผู้สืบทอดโดยตรงไปยังโครงการ Vagrant-Box-Macos ของฉันซึ่งได้รับแรงบันดาลใจอย่างมากจากโครงการ OSX-VM-Templates ของ Tim Sutton
ด้วยการเปิดตัว MacOS 10.12.4 เทคนิคที่มีอยู่ในการปรับแต่งการติดตั้ง MACOS นั้นถูกขัดขวางโดยข้อกำหนดของตัวติดตั้งใหม่ที่ Apple ลงนามแพ็คเกจทั้งหมด หลังจากพยายามใช้เทคนิคต่าง ๆ เพื่อให้ vagrant-box-macos สนับสนุน MacOS 10.13 High Sierra ฉันตัดสินใจว่าจะต้องใช้วิธีการที่แตกต่างกันในการสร้างกล่องและ macinbox ก็เกิด
เริ่มต้นด้วยการเรียกใช้ sudo gem install bundler และ bundle install
ในการเรียกใช้ macinbox โดยตรงจากรูทของพื้นที่ทำงาน GIT โดยไม่ต้องติดตั้งอัญมณีให้เรียกใช้ sudo bundle exec macinbox
ในการติดตั้งอัญมณีนี้ลงบนเครื่องในเครื่องของคุณให้เรียกใช้ sudo bundle exec rake install
นอกจากนี้คุณยังสามารถเรียกใช้ bin/console สำหรับพรอมต์แบบโต้ตอบที่จะช่วยให้คุณสามารถทดลองได้ ตัวอย่างเช่น:
opts = Macinbox::CLI::DEFAULT_OPTION_VALUES
opts[:collector] = Macinbox::Collector.new
opts[:full_name] = "Vagrant"
opts[:password] = "vagrant"
opts[:image_path] = "macinbox.sparseimage"
opts[:boxes_dir] = File.expand_path "~/.vagrant.d/boxes"
$debug = $verbose = true
include Macinbox::Actions
opts[:macos_version] = CheckMacosVersions.new(opts).run
CreateImageFromInstaller.new(opts).run
opts[:vmdk_path] = "macinbox.vmdk"
CreateVMDKFromImage.new(opts).run
opts[:box_format] = "vmware_desktop"
opts[:box_path] = "vmware_desktop.box"
CreateBoxFromVMDK.new(opts).run
InstallBox.new(opts).run
opts[:hdd_path] = "macinbox.hdd"
CreateHDDFromImage.new(opts).run
opts[:box_format] = "parallels"
opts[:box_path] = "parallels.box"
CreateBoxFromHDD.new(opts).run
InstallBox.new(opts).run
opts[:vdi_path] = "macinbox.vdi"
CreateVDIFromImage.new(opts).run
opts[:box_format] = "virtualbox"
opts[:box_path] = "virtualbox.box"
CreateBoxFromVDI.new(opts).run
InstallBox.new(opts).run
opts[:collector].cleanup!
หากต้องการเปิดตัวเวอร์ชันใหม่ให้อัปเดตหมายเลขเวอร์ชันใน version.rb จากนั้นเรียกใช้ bundle exec rake release ซึ่งจะสร้างแท็ก GIT สำหรับเวอร์ชันกด GIT และแท็กและกดไฟล์ .gem ไปที่ rubygems.org
รายงานข้อผิดพลาดและคำขอดึงยินดีต้อนรับบน GitHub ที่ https://github.com/bacongravy/macinbox