2

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,439
  • 4
  • 23
  • 46
  • Why don't you install it from USB-stick or whatever during installation? – Lenniey Jun 23 '17 at 11:27
  • My server is in a datacenter and does only boot via live CD, it does boot in emergency mode otherwise. I cannot use a KVM or access the server. – Daniel W. Jun 23 '17 at 11:37

2 Answers2

3

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
  • 290
  • 1
  • 6
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
  • 2,755
  • 6
  • 24
  • 35
polendina
  • 61
  • 1
  • 4
  • This does not provide an answer to the question. Once you have sufficient [reputation](https://serverfault.com/help/whats-reputation) you will be able to [comment on any post](https://serverfault.com/help/privileges/comment); instead, [provide answers that don't require clarification from the asker](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead). - [From Review](/review/late-answers/502123) – djdomi Nov 06 '21 at 18:42
  • @djdomi i just thought pinpointing the solution to this seemingly inevitable error when issuing chroot at the process would collectively help – polendina Nov 06 '21 at 23:58
  • then update the answers that it resolve the issue and add your additional information to the answer but dont use an answer to comment – djdomi Nov 07 '21 at 10:02