3

I can only boot via live CD and I need to install the Debian package firmware-linux-nonfree to my server for it to be able to successfully boot.

How can I do this? Would chroot help me ?

Daniel W.
  • 1,929

2 Answers2

9

First solution :

  • You can install driver needed to boot in recovery. One things to notice : only / is mounted so rememeber that you need to mount other partition such as /usr or /home if needed

  • You need to remount the / in read and write mode : mount -o remount,rw /

  • You just have to install your package like you're doing in normal mode.

  • Packages installed in the recovery mode do persist in the normal mode.

Another way to try

  • Boot from CD
  • Find your HDD with fdisk -l or lsblk
  • Mount it with this command ``mkdir /mnt/hdd && mount /dev/sdx /mnt/hdd
  • If you have a separate boot partition mount that too.

    mount -t ext2 /dev/sdx1 /mnt/hdd/boot

  • Now in order to have a functional chroot, we have to mount proc, dev and sys subsystems :

    mount -t proc none /mnt/hdd/proc
    mount -o bind /dev /mnt/hdd/dev
    mount -o bind /sys /mnt/hdd/sys
    
  • We need to have internet acces :

    cp /etc/resolv.conf  /mnt/hdd/etc/resolv.conf
    
  • Use chroot /mnt/hdd /bin/bash to start a chrooted bash

  • Install your package via apt
  • Try to reboot
P0pR0cK5
  • 350
0

As for now i don't have enough reputations to add a commend to @P0pR0cK5's answer, so I'll just append that if chroot from the previous answer did halt while trying to execute chroot /mnt/hdd /bin/bash resulting in the error failed to run command '/bin/bash': No such file or directory, bind mounting additional directories would help.

sudo mount -o bind /usr /mnt/hdd/usr
sudo mount -o bind /lib /mnt/hdd/lib
sudo mount -o bind /lib64 /mnt/hdd/lib64

Finally, issue the chroot /mnt/hdd /bin/bash command back again.

Paul
  • 3,278
kqvanity
  • 111