Kernel Fails to Load (pata acpi error)
Overview
This problem may affect particular computer systems using the JMicron PATA Controller chipset, which is used to control and access storage devices, such as Solid State Drives (SSD). More specifically, it may be due to the PATA ACPI driver being loaded by the GRUB (GRand Unified Bootloader), which has consequently resulted in a conflict with the JMicron chipset. Should this indeed be the case, then an error message similar - or identical - to the example provided below should be displayed upon attempting to boot the affected kernel version(s):
ERROR: device 'UUID=......' not found. Skipping FSCK' ERROR: Unable to find root device 'UUID=......' You are being dropped to the recovery shell Type 'exit' to try and continue booting sh: can't access tty: job control turned off' [...] mount: can't find UUID='.....' You are now being dropped into the emergency shell.
If so, then the solution is to simply stop the PATA ACPI driver from being loaded in the first place. This is a simple task, undertaken by amending a single line in the default grub file.
Opening the Default GRUB File
The syntax of the command to open the grub file is:
For example, if you wish to edit the file within the terminal using nano (a standard terminal-based text editor) then enter:
If you have installed the full version of Manjaro, not the NET-Edition, you may find it easier to use the pre-installed gedit text editor instead. This will open the file up as a document, making it easier to read and edit. To use gedit instead, enter:
Editing the Default GRUB File
Once the default grub file has been opened, it will be necessary to amend the GRUB_CMDLINE_LINUX="" command, which is itself located near the top of the file. An example has been provided below, with the appropriate line highlighted in green below for illustrative purposes:
GRUB_DEFAULT=saved GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Manjaro" GRUB_CMDLINE_LINUX_DEFAULT="GRUB_CMDLINE_LINUX_DEFAULT= resume=/dev/disk/by-uuid/<some-guid>" GRUB_CMDLINE_LINUX=""
To prevent the PATA ACPI driver from being loaded, modprobe.blacklist=pata_acpi must be added in between the otherwise empty speech marks. An example of the necessary amendment has been provided below, which has again been highlighted in green for illustrative purposes:
GRUB_DEFAULT=saved GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Manjaro" GRUB_CMDLINE_LINUX_DEFAULT="GRUB_CMDLINE_LINUX_DEFAULT= resume=/dev/disk/by-uuid/<some-guid>" GRUB_CMDLINE_LINUX="modprobe.blacklist=pata_acpi"
Once you have completed the amendments, save the change and close the file by:
- nano: Press CTRL and 'x' to exit, 'y' to save, and <enter> to finish, or
- gedit: Select the 'save' option and then close the window.
Now all that is necessary is to update the GRUB before rebooting.
Updating the GRUB
To update the GRUB, ensure that the terminal is open, and enter the folliwing command:
Once complete, reboot your system for the change to take effect.