Can't boot any operating system other than Fedora after following the nullr0ute guide
#1
Question 
Hello,

Could somebody please help me to boot an operating system on my Pinebook Pro other than Fedora? After following this guide (https://nullr0ute.com/2021/05/fedora-on-...ebook-pro/), I successfully installed U-Boot to my PBP's SPI flash. I love Fedora, but I would really like to have the option to boot another OS from MicroSD or USB without having to zero out the SPI flash (and thus rendering my Fedora install unbootable). I really don't know where to begin, so any help would be appreciated!
  Reply
#2
I am using Tow-Boot rather than the Fedora uboot used in nullr0ute[/url]'s guide.



I have not tested this and I don't know enough about uboot to know if it would work on that, maybe it would?




Tow-Boot does work with Fedora, but it's important to note 
these modifications to the EFI system partition are required to get it to boot.



The following installs [url=https://github.com/SvenKiljan/archlinuxarm-pbp]SvenKiljan's ArchLinuxARM on the SD card (/dev/mmcblk1) starting from an existing Fedora install.




So, from the existing install we want to get a viable arch image (in this case we'll use SvenKiljan's) we could install from and then chroot into it.


Code:
curl -OL https://github.com/SvenKiljan/archlinuxarm-pbp/releases/latest/download/ArchLinuxARM-pbp-latest.tar.gz

mkdir /tmp/arch

bsdtar -xpf ArchLinuxARM-pbp-latest.tar.gz -C /tmp/arch

mount --bind /tmp/arch /tmp/arch/
cd /tmp/arch/
\cp /etc/resolv.conf etc
mount -t proc /proc proc
mount --make-rslave --rbind /sys sys
mount --make-rslave --rbind /dev dev
mount --make-rslave --rbind /run run
chroot /tmp/arch/ /bin/bash



Once we are in the arch image we can begin the install as normal. I prefer to use parted, which is not included in this image, so lets grab it.


Code:
pacman-key --init
pacman-key --populate archlinuxarm
pacman-key --populate archlinuxarm-pbp

pacman -S parted


We can then setup the disks as desired, in this case I want to have ArchLinuxARM on an sd card at /dev/mmcblk1 and we will go with a basis UEFI parition scheme with a 100mib /boot/efi parition and everything else as /


Code:
parted -a optimal /dev/mmcblk1
GNU Parted 3.4
Using /dev/mmcblk1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/mmcblk1 will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
(parted) unit mib
(parted) mkpart primary fat32 1 101
(parted) name 1 esp
(parted) mkpart primary ext4 101 -1
(parted) name 2 rootfs
(parted) set 1 boot on
(parted) quit
Information: You may need to update /etc/fstab.



We can then format the partitions, mount them, and use pacstrap to install ArchLinuxARM.


Code:
mkfs.fat -F 32 -n efi-boot /dev/mmcblk1p1
mkfs.ext4 /dev/mmcblk1p2 -L rootfs

mount /dev/mmcblk1p2 /mnt/
mkdir /mnt/boot
mkdir /mnt/boot/efi
mount /dev/mmcblk1p1 /mnt/boot/efi

pacstrap /mnt base base-devel ap6256-firmware libdrm-pinebookpro linux-manjaro pinebookpro-audio pinebookpro-post-install vim



Now we want to generate the fstab file and chroot into the new system


Code:
genfstab -U /mnt >> /mnt/etc/fstab

arch-chroot /mnt/



Because this is a chroot install from Fedora my fstab file was a bit messed up, so it's probably wise to go in and ensure there's nothing in there that shouldn't be.



Code:
vim /etc/fstab



Following the Arch install guide, we can now setup out localization and I want to ensue I have internet and can login after reboot, so I install dhcpcd and set the root password.


Code:
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
hwclock --systohc

vim /etc/locale.gen
locale-gen
vim /etc/locale.conf #LANG=en_US.UTF-8

pacman -S dhcpcd

passwd



Finially, we want to install grub so we can boot.



Code:
pacman -S grub

grub-install --efi-directory=/boot/efi --removable
grub-mkconfig -o /boot/grub/grub.cfg



Grub doesn't seem to correctly detect the install, and I don't really know enough about grub to figure out why so I just edited /boot/grub/grub.cfg and added my own boot entry.


Code:
vim /boot/grub/grub.cfg

### BEGIN /etc/grub.d/10_linux ###
menuentry "Arch Linux Arm" {
  search --label --set=root rootfs
  linux /boot/Image root=/dev/disk/by-label/rootfs console=tty0 rw
  initrd /boot/initramfs-linux.img
}
### END /etc/grub.d/10_linux ###




From here, you should be able to exit both the chroots, unmount everything, and reboot.






This general process can probably be used on other distros.
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Fedora 37 installation gswatkins 16 5,515 03-16-2024, 03:09 PM
Last Post: michel_luc
Exclamation 'failed to open panfrost' after system update using archarm Puckla 1 211 03-01-2024, 06:46 PM
Last Post: Puckla
  Need Help Recovering Manjaro /boot Contents on Pinebook Pro calinb 6 1,979 12-11-2023, 03:47 AM
Last Post: calinb
  Boot Order in Pinebook Pro food 8 992 11-23-2023, 07:37 AM
Last Post: KC9UDX
  Fedora 36 -> 37 upgrade kills system tydeman 0 370 10-28-2023, 09:53 AM
Last Post: tydeman
  [Manjaro] u-boot won't boot from eMMC with (unbootable) SD card present zackw 1 1,853 08-21-2023, 09:08 PM
Last Post: vanessadonald
  Upgrade Fedora from 37 to 38? acruhl 2 816 07-12-2023, 09:31 PM
Last Post: acruhl
  Emergency Mode Boot Hotkey? jiacovelli 20 3,878 06-02-2023, 01:32 PM
Last Post: wdt
  My installation guide starting from messed up eMMC Besouro 0 813 12-19-2022, 01:01 PM
Last Post: Besouro
  Tow Boot install help Paulie420 7 3,571 11-24-2022, 10:24 AM
Last Post: myself600

Forum Jump:


Users browsing this thread: 1 Guest(s)