I have a problem (described here and here) installing Ubuntu on my laptop from USB stick, and some people say that I need to change GRUB_CMDLINE_LINUX_DEFAULT
value in /etc/default/grub
to quiet iommu=soft splash
, but I get /usr/sbin/grub-probe: error: failed to get canonical path of '/cow'
error.
2 Answers
Change Command Line On Rufus Made USB
update-grub
does not work on Live or Persistent USB's. However you can edit the command line Directly on a Rufus made USB in Windows.
If booting in Legacy mode:
In Windows Explorer select and open /isolinux/txt.cfg and add your iommu=soft
between quiet and splash of the first menu item. Save.
If booting in UEFI mode:
In Windows Explorer select and open /boot/grub/grub.cfg and add your iommu=soft
between quiet and splash of the first menuentry. Save.
You can also make the changes temporarily for each session.
Booting Legacy press shift
and Esc
at the language screen press F6
and Esc
again. Edit the command line as above and press enter
to boot.
Booting UEFI mode press e
at the boot menu. Edit as above and press F10
to boot.
I was able to do the job described by @C.S.Cameron above, without Windows, using a second live Ubuntu/linux USB-disk/CD. Essentially, this involved running Ubuntu from a second live USB, accessing a partition called "usbboot" on my first live (persistent) USB, and editing the grub file on that partion, which is at /boot/grub/grub.config. The process necessitates mounting the usbboot partition. I'm not sure this partition exists for all live Ubuntu USB disks, and whether it's related to persistence. Here's more detail/instructions:
- Boot into ubuntu with your second live USB
- Plug in your first live USB - the one you want to change
- Run this code to get a list of partitions with their "device" and label info:
sudo blkid -o list
- Look at the list and identify the the partition labelled "usbboot". If there is more than one, be sure to choose the one from your FIRST live USB (the one you want to change).
- Get the device info for that partition; it will be something like "/dev/sdXX" where XX is specific to that partition (note that it can change after rebooting).
- Mount the partion using this code:
sudo mkdir /mnt/bootboot # bootboot can be any name of your choice`
sudo mount /dev/sdXX /mnt/bootboot
- Use your file manager to check that the file /mnt/bootboot/boot/grub/grub.cfg exists. If it doesn't, check in the vicinity of that folder for any other grub.cfg files that might be the one. If it does exist at the expected location, then run this command to edit the file:
sudo gedit /mnt/bootboot/boot/grub/grub.cfg
If desired/necessary, modify this command to use nano or some other way of editing the text, instead of gedit.- Change the timeout value to the desired number of seconds. In other words, change "set timeout=10" to "set timeout=3" (or whatever value you want). Save the changes.
- Reboot the computer using your first/original live USB. All going well, it will boot according to your revised grub settings.
This solution was derived from experimentation based on C.S.Cameron's answer above and another post - https://forums.linuxmint.com/viewtopic.php?p=1692327#p1692327
-
In documenting the solution above, I've assumed that the usbboot partition shouldn't be accessed while using the live USB to which it belongs. If I'm wrong about this, then a second live USB is not necessary, just mount the partition, edit the grub.cfg file, and reboot. Also, it seems the usbboot partition may only be found on drives created using mkusb.– djangoCommented Feb 9, 2022 at 8:44