diff --git a/quickemu b/quickemu index 0325a09..a3b99cd 100755 --- a/quickemu +++ b/quickemu @@ -15,44 +15,20 @@ function ask_option_msrs() { fi } -function ask_persist_msrs() { - ignore_msrs=$(cat /sys/module/kvm/parameters/ignore_msrs) - #Skip if already persisted, assuming initramfs rebuilt - grep -lq 'ignore_msrs=Y' /etc/modprobe.d/kvm.conf >/dev/null 2>&1 || \ - if [ ${ignore_msrs} = "Y" ]; then - echo - echo "To make setting ignore_msrs a more persistant solution you may run the following:" - echo 'echo "options kvm ignore_msrs=Y" | sudo tee -a /etc/modprobe.d/kvm.conf && sudo update-initramfs -k all -u' - echo - - while true ; do - read -p "Do you wish to set ignore_msrs at boot? (y/N)" bootrsp - case $bootrsp:0:1 in - [yY]* ) echo "options kvm ignore_msrs=Y" | sudo tee -a /etc/modprobe.d/kvm.conf && sudo update-initramfs -k all -u ; break;; - * ) break ;; - - esac - done - fi -} - function ignore_msrs_alert() { - ignore_msrs=$(cat /sys/module/kvm/parameters/ignore_msrs) - - if [ ${ignore_msrs} = "N" ]; then - # Some macos and windows installations need this to successfully boot - echo ' - If you experience issues booting macos or windows like those mentioned in - - https://github.com/wimpysworld/quickemu/issues/88 - - then you can try the provided solution as a temporary fix by executing: - - "echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs"' - - echo -n "I can do that for you now. " ; ask_option_msrs + local ignore_msrs="" + if [ -e /sys/module/kvm/parameters/ignore_msrs ]; then + ignore_msrs=$(cat /sys/module/kvm/parameters/ignore_msrs) + if [ "${ignore_msrs}" == "N" ]; then + echo " - MSR: WARNING! Ignoring unhandled Model-Specific Registers is disabled." + echo + echo " echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs" + echo + echo " If you are unable to run macOS or Windows VMs then run the above 👆" + echo " This will enable ignoring of unhandled MSRs until you reboot the host." + echo " You can make this change permenant by running: 'quickemu --ignore-msrs-always'" + fi fi - ask_persist_msrs } function disk_delete() {