Boot into Rescue Mode and Enable SSH on Rocky Linux
Table of Contents
With a Rescue ISO/DVD you can fix or salvage your machine from a system failure. It’s more common to fix a hard drive that is serving /boot
or /
, or resize root LVM.
Grub Options #
- Boot into your Rescue ISO/DVD.
- Select
Troubleshooting
. - Highlight
Rescue a Rocky Linux System
. - Press
e
to get the grub options, and appendinst.sshd=1
andip=dhcp
. - Then press
Ctrl+x
to the start.
- On the rescue environment menu choose one that’s appropriate to your situation.
Continue
will mount the/
filesystem under the directory specified, usuallymnt/sysroot
or/mnt/sysimage
(the same directory I recommended you use if you have to runchroot
)Skip to shell
if you don’t want to mount the/
filesystem and prefer to do things your own way in a shell(that’s what I did).
Once you get a shell, run ip a s
to view your IP, and SSH into the machine as root
with an empty password:
[anaconda root@localhost ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 432M 0 432M 0% /dev
tmpfs tmpfs 472M 12K 472M 1% /dev/shm
tmpfs tmpfs 472M 25M 447M 6% /run
tmpfs tmpfs 472M 0 472M 0% /sys/fs/cgroup
/dev/sr0 iso9660 1.9G 1.9G 0 100% /run/install/repo
/dev/mapper/live-rw ext4 2.9G 2.2G 711M 76% /
tmpfs tmpfs 512M 1.2M 511M 1% /tmp
[anaconda root@localhost ~]#
The live image is mounted on /
.
Configure SSH and an IP Address manually #
Once you get a shell, configure the IP and ping your gateway to test connectivity:
# View IP info and Network Device
ip link
# Set an IP to the device shown above
ip a add 192.168.100.120/24 dev ens33
# Set your gateway
ip route add default via 192.168.100.1
# Verify the Changes
ip link; ip route
# Test Connectivity
ping 192.168.100.1 -c 5
For SSH #
Find the configuration file:
[anaconda root@localhost ~]# find / -name "*sshd_config*"
/etc/ssh/sshd_config.anaconda
[anaconda root@localhost ~]#
[anaconda root@localhost ~]# cat /etc/ssh/sshd_config.anaconda
PermitRootLogin yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd yes
SyslogFacility AUTHPRIV
PasswordAuthentication yes
PermitEmptyPasswords yes
PermitUserEnvironment yes
You can change the options according to your needs. Make a copy of the configuration file to something that SSH can read and start SSH:
cp /etc/ssh/sshd_config.anaconda /etc/ssh/sshd_config
systemctl start sshd
Once done, ssh into the machine:
[anaconda root@localhost ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 432M 0 432M 0% /dev
tmpfs tmpfs 472M 12K 472M 1% /dev/shm
tmpfs tmpfs 472M 13M 459M 3% /run
tmpfs tmpfs 472M 0 472M 0% /sys/fs/cgroup
/dev/sr0 iso9660 1.9G 1.9G 0 100% /run/install/repo
/dev/mapper/live-rw ext4 2.9G 2.2G 711M 76% /
tmpfs tmpfs 512M 1.4M 511M 1% /tmp
Mount LVM and Chroot #
If your partitions or filesystems are managed by LVM, you’ll have to activate it first:
[anaconda root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 rl lvm2 a-- 18.41g 0
[anaconda root@localhost ~]#
[anaconda root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rl 1 2 0 wz--n- 18.41g 0
[anaconda root@localhost ~]#
[anaconda root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rl -wi------- 16.41g
swap rl -wi------- 2.00g
[anaconda root@localhost ~]#
[anaconda root@localhost ~]# vgchange -ay
2 logical volume(s) in volume group "rl" now active
Mount root
filesystem on /mnt/sysimage
:
[anaconda root@localhost ~]# mount /dev/mapper/rl-root /mnt/sysimage/
[anaconda root@localhost ~]#
[anaconda root@localhost ~]# ls /mnt/sysimage/
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
Mount /dev
, /dev/shm
, /usr
, /sys
, and /proc
:
[anaconda root@localhost ~]# for i in dev usr sys dev/shm; do mount -o bind /$i /mnt/sysimage/$i; done
[anaconda root@localhost ~]#
[anaconda root@localhost ~]# mount -t proc /proc /mnt/sysimage/proc
[anaconda root@localhost ~]#
[anaconda root@localhost ~]# mount | grep sysimage
/dev/mapper/rl-root on /mnt/sysimage type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
devtmpfs on /mnt/sysimage/dev type devtmpfs (rw,nosuid,seclabel,size=442124k,nr_inodes=110531,mode=755)
/dev/mapper/live-rw on /mnt/sysimage/usr type ext4 (rw,relatime,seclabel)
sysfs on /mnt/sysimage/sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
tmpfs on /mnt/sysimage/dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
/proc on /mnt/sysimage/proc type proc (rw,relatime)
Mount /boot
and /boot/EFI
(if you’re using MBR, just mount /boot
):
[anaconda root@localhost ~]# mount /dev/sda2 /mnt/sysimage/boot/
[anaconda root@localhost ~]# mount /dev/sda1 /mnt/sysimage/boot/efi/
Change root
filesystem to /mnt/sysimage
:
[anaconda root@localhost ~]# chroot /mnt/sysimage/
[anaconda root@localhost /]#
[anaconda root@localhost /]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rl-root xfs 17G 2.3G 15G 14% /
devtmpfs devtmpfs 432M 0 432M 0% /dev
/dev/mapper/live-rw ext4 2.9G 2.2G 709M 76% /usr
tmpfs tmpfs 472M 12K 472M 1% /dev/shm
/dev/sda2 xfs 1014M 236M 779M 24% /boot
/dev/sda1 vfat 599M 5.8M 594M 1% /boot/efi
To reboot, type exit
and press enter in your main terminal(not over ssh).
“The person, be it gentleman or lady, who has not pleasure in a good novel, must be intolerably stupid.”
― Jane Austen, Northanger Abbey