User:Moggers87/Installing Opensuse: Difference between revisions

From BitFolk
Jump to navigation Jump to search
(Weird dracut bug that I came across last time but forgot to add)
mNo edit summary
Line 204: Line 204:


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
root@rescue:~# halt
root@rescue:~# poweroff
</syntaxhighlight>
</syntaxhighlight>



Revision as of 23:28, 21 January 2022

under construction.gif

Install OpenSUSE

Make sure you're in PVH mode

xen-shell> virtmode pvh

Boot rescue VM and log in

xen-shell> rescue

After a while you'll be presented with a login prompt. The password is auto-generated and should be printed a few lines above the prompt. Once you're logged in, become root:

user@rescue:~$ sudo -i
root@rescue:~#

Install required utilities into rescue VM

root@rescue:~# apt update
root@rescue:~# apt install rpm zypper curl btrfs-progs zstd parted

Set up partitions on disk

Wipe existing block devices:

root@rescue:~# for d in a b; do wipefs -a /dev/xvd${d}; done

Create partitions:

root@rescue:~# parted -s /dev/xvda mklabel gpt mkpart root btrfs 0% 100%
root@rescue:~# parted -s /dev/xvda set 1 boot on
root@rescue:~# parted -s /dev/xvdb mklabel gpt mkpart swap linux-swap 0% 100%
root@rescue:~# mkfs.btrfs /dev/xvda1
root@rescue:~# mkswap -L SWAP /dev/xvdb1

Finally, mount the partition:

root@rescue:~# mkdir -vp /target && mount -v /dev/xvda1 /target

Copy in resolv.conf

root@rescue:~# mkdir /target/etc/
root@rescue:~# cp -v /etc/resolv.conf /target/etc/

Set up Zypper repoes

root@rescue:~# mkdir -p /target/etc/zypp/repos.d/
root@rescue:~# cat <<-EOF > /target/etc/zypp/repos.d/repo-oss.repo
[repo-oss]
name=Main Repository
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/distribution/leap/\$releasever/repo/oss/
path=/
type=rpm-md
keeppackages=0
EOF
root@rescue:~# cat <<-EOF > /target/etc/zypp/repos.d/repo-update.repo
[repo-update]
name=Main Update Repository
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/update/leap/\$releasever/oss
path=/
type=rpm-md
keeppackages=0
EOF

Install Zypper

root@rescue:~# zypper --releasever=15.3 -R /target install zypper

You'll be prompted to trust various GPG keys and confirm that you want to install the zypper package and its dependencies.

Enter chroot

Mount /dev and some other things needed by the chroot:

root@rescue:~# mount -v --bind /dev /target/dev
root@rescue:~# mount -v -t proc procfs /target/proc
root@rescue:~# mount -v -t sysfs sysfs /target/sys

Enter the chroot:

root@rescue:~# chroot /target /bin/bash

Install base packages

Install some base packages for first boot:

rescue:/ # zypper --releasever=15.3 install openSUSE-release lsb grub2 dracut-tools wicked -t pattern enhanced_base

Configure GRUB and install kernel

rescue:/ # cat > /etc/default/grub << EOF
# If you change this file, run 'grub2-mkconfig -o /boot/grub2/grub.cfg' afterwarrds to update
# /boot/grub2/grub.cfg.

GRUB_DEFAULT=saved
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="splash=silent mitigations=auto quiet"
GRUB_TERMINAL=console
GRUB_DISABLE_RECOVERY="true"
EOF
rescue:/ # zypper --releasever=15.3 install kernel-default
rescue:/ # grub2-mkconfig -o /boot/grub2/grub.cfg

Finally, you need to manually generate an initrd file:

rescue:/ # dracut --kver `ls /lib/modules`

Networking

rescue:/ # cat > /etc/sysconfig/network/ifcfg-eth0 << EOF
TYPE='Ethernet'
PROXY_METHOD='none'
BROWSER_ONLY='no'
DEFROUTE='yes'
IPV6INIT='yes'
DEVICE='eth0'
ONBOOT='yes'
PREFIX='21'
PREFIX_0='64'
DNS1='85.119.80.232'
DNS2='85.119.80.233'
IPADDR='85.119.82.225/21'
IPADDR_0='2001:ba8:1f1:f1d7::2/64'
NAME='eth0'
BOOTPROTO='static'
STARTMODE='auto'
LABEL_0=''
ZONE='public'
EOF
rescue:/ # cat > /etc/sysconfig/network/ifroute-eth0 << EOF
85.119.80.0/21 - - eth0
2001:ba8:1f1:f1d7::/64 - - eth0
default 85.119.80.1 - eth0
default 2001:ba8:1f1:f1d7::1 - eth0
EOF

Create fstab

rescue:/ # cat > /etc/fstab << EOF
/dev/xvda1  /   btrfs defaults,noatime 0 0
LABEL=SWAP swap swap  defaults         0 0
EOF

Set root password

rescue:/ # passwd root

Exit chroot and dismount

rescue:/ # exit
root@rescue:~# umount /target/sys
root@rescue:~# umount /target/proc
root@rescue:~# umount /target/dev
root@rescue:~# umount /target

Stop the rescue VM

root@rescue:~# poweroff

First boot

Boot and then log in as root with the password you set earlier:

xen-shell> boot