這兩天,我都在弄usb大拇哥 boot
然後我找到
https://www.sebastien-han.fr/blog/2013/12/16/virtualbox-mac-os-x-10-dot-9-boot-from-an-usb-drive/
然後我又覺得上面的步驟好煩,就寫了一個python,來簡化流程…XDD
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
#-*- coding: utf-8 -*- import shlex import getpass import os from subprocess import Popen, PIPE def get_exitcode_stdout_stderr(cmd): """ Execute the external command and get its exitcode, stdout and stderr. """ args = shlex.split(cmd) proc = Popen(args, stdout=PIPE, stderr=PIPE) out, err = proc.communicate() exitcode = proc.returncode # return exitcode, out, err list_disk ='diskutil list' exitcode, out, err = get_exitcode_stdout_stderr(list_disk) print out print 'choose device' device = raw_input("Enter device path: ") #print 'umount %s' % (device) umount_disk = 'diskutil umountdisk %s' % (device) exitcode, out, err = get_exitcode_stdout_stderr(umount_disk) password = getpass.getpass("Enter sudo password: ") echo = Popen(['echo',password], stdout=PIPE, ) sudo = Popen(['sudo','-S','chmod','777', device], stdin=echo.stdout, stdout=PIPE, ) usb_vmdk = '/Users/csw/Documents/usbdrive.vmdk' create_usb_vmdk = 'VBoxManage internalcommands createrawvmdk -filename %s -rawdisk %s' % (usb_vmdk, device) vbox_del = 'vboxmanage unregistervm %s --delete' % ('USB_BOOT') if os.path.exists(usb_vmdk): exitcode, out, err = get_exitcode_stdout_stderr('rm %s' % (usb_vmdk)) exitcode, out, err = get_exitcode_stdout_stderr(create_usb_vmdk) else: exitcode, out, err = get_exitcode_stdout_stderr(create_usb_vmdk) print 'execut command:' print 'umount_disk: %s' % (umount_disk) print 'chmod: chmod 777 %s' % (device) print 'create vmbox usb disk: %s' %(create_usb_vmdk) print 'if you get "error VERR_RESOURCE_BUSY opening image file" message, re execute: %s' %(umount_disk) |