commit - 477e7cafcb431f8b10d026f1e2f2aab89d0598f3
commit + 1e7e1396c1fdb02fc06515cda1e97d4574ced814
blob - /dev/null
blob + ddb02655a24c8e4cd9295446a39cab1b289e26e4 (mode 644)
--- /dev/null
+++ art/017.how_to_install_alpine_on_vmm.txt
+Title: How to install Alpine Linux on OpenBSD VMM
+Author: Alexander Arkhipov <aa@manpager.org>
+Created: 2024-07-22
+Modified: 2024-07-22
+
+ON OPENBSD
+
+At the time of writing, Alpine Linux 3.20.1 is the most recent. You can
+get a URL relevant to you from https://alpinelinux.org/downloads/, or by
+exploring a mirror in a web browser.
+
+$ ftp https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-virt-3.20.1-x86_64.iso
+$ vmctl create -s 5G alpine.qcow2 # or .img
+# vmctl start -cL -d alpine.qcow2 -B cdrom -m 1G -r alpine-virt-3.20.1-x86_64.iso alpine
+
+
+ON ALPINE
+
+Below is a transcript of installation. My comments are offered in
+parentheses, all caps (LIKE SO).
+
+Welcome to Alpine Linux 3.20
+Kernel 6.6.34-1-virt on an x86_64 (/dev/ttyS0)
+
+localhost login: root
+(NO PASSWORD)
+Welcome to Alpine!
+
+The Alpine Wiki contains a large amount of how-to guides and general
+information about administrating Alpine systems.
+See <https://wiki.alpinelinux.org/>.
+
+You can setup the system with the command: setup-alpine
+
+You may change this message by editing /etc/motd.
+
+localhost:~# setup-alpine
+
+
+ ALPINE LINUX INSTALL
+----------------------
+
+ Hostname
+----------
+Enter system hostname (fully qualified form, e.g. 'foo.example.org') [localhost] alpine.my.domain
+
+ Interface
+-----------
+Available interfaces are: eth0.
+Enter '?' for help on bridges, bonding and vlans.
+Which one do you want to initialize? (or '?' or 'done') [eth0]
+Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp]
+Do you want to do any manual network configuration? (y/n) [n]
+udhcpc: started, v1.36.1
+udhcpc: broadcasting discover
+udhcpc: broadcasting select for 100.64.5.3, server 100.64.5.2
+udhcpc: lease of 100.64.5.3 obtained from 100.64.5.2, lease time 4294967295
+
+ Root Password
+---------------
+Changing password for root
+New password:
+Bad password: too short
+Retype password:
+passwd: password for root changed by root
+
+ Timezone
+----------
+Africa/ Egypt Iran Poland
+America/ Eire Israel Portugal
+Antarctica/ Etc/ Jamaica ROC
+Arctic/ Europe/ Japan ROK
+Asia/ Factory Kwajalein Singapore
+Atlantic/ GB Libya Turkey
+Australia/ GB-Eire MET UCT
+Brazil/ GMT MST US/
+CET GMT+0 MST7MDT UTC
+CST6CDT GMT-0 Mexico/ Universal
+Canada/ GMT0 NZ W-SU
+Chile/ Greenwich NZ-CHAT WET
+Cuba HST Navajo Zulu
+EET Hongkong PRC leap-seconds.list
+EST Iceland PST8PDT posixrules
+EST5EDT Indian/ Pacific/
+
+Which timezone are you in? [UTC]
+
+ * Seeding random number generator ...
+ * Saving 256 bits of creditable seed for next boot
+ [ ok ]
+ * Starting busybox crond ...
+ [ ok ]
+
+ Proxy
+-------
+HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none]
+
+ Network Time Protocol
+-----------------------
+Mon Jul 22 11:06:46 UTC 2024
+Which NTP client to run? ('busybox', 'openntpd', 'chrony' or 'none') [chrony]
+ * service chronyd added to runlevel default
+ * Caching service dependencies ...
+ [ ok ]
+ * Starting chronyd ...
+ [ ok ]
+
+ APK Mirror
+------------
+wget: bad address 'mirrors.alpinelinux.org'
+wget: bad address 'mirrors.alpinelinux.org'
+ (f) Find and use fastest mirror
+ (s) Show mirrorlist
+ (r) Use random mirror
+ (e) Edit /etc/apk/repositories with text editor
+ (c) Community repo enable
+ (skip) Skip setting up apk repositories
+
+(AT THIS POINT THERE'S MOST LIKELY SOMETHING SILLY IN /etc/resolv.conf.
+ FOR A QUICK FIX, USE 8.8.8.8.)
+
+Enter mirror number or URL: [1] !
+Type 'exit' to return to setup.
+# echo 'nameserver 8.8.8.8' >/etc/resolv.conf
+Enter mirror number or URL: [1]
+
+ (f) Find and use fastest mirror
+ (s) Show mirrorlist
+ (r) Use random mirror
+ (e) Edit /etc/apk/repositories with text editor
+ (c) Community repo enable
+ (skip) Skip setting up apk repositories
+
+Enter mirror number or URL: [1] f
+
+Finding fastest mirror...
+...
+Added mirror not.a.real.mirror
+Updating repository indexes... done.
+
+ User
+------
+Setup a user? (enter a lower-case loginname, or 'no') [no] jd
+Full name for user jd [jd] John Doe
+Changing password for jd
+New password:
+Bad password: too short
+Retype password:
+passwd: password for jd changed by root
+Enter ssh key or URL for jd (or 'none') [none]
+(1/1) Installing doas (6.8.2-r7)
+Executing busybox-1.36.1-r29.trigger
+OK: 18 MiB in 37 packages
+Which ssh server? ('openssh', 'dropbear' or 'none') [openssh]
+ * service sshd added to runlevel default
+ * Caching service dependencies ...
+ [ ok ]
+ssh-keygen: generating new host keys: RSA ECDSA ED25519
+ * Starting sshd ...
+ [ ok ]
+
+ Disk & Install
+----------------
+Available disks are:
+ vda (21.5 GB 0x0b5d )
+
+Which disk(s) would you like to use? (or '?' for help or 'none') [none] vda
+
+The following disk is selected:
+ vda (21.5 GB 0x0b5d )
+
+How would you like to use it? ('sys', 'data', 'crypt', 'lvm' or '?' for help) [?] ?
+
+You can select between 'sys', 'data', 'crypt', 'cryptsys', 'lvm', 'lvmsys'
+or 'lvmdata'.
+
+sys:
+ This mode is a traditional disk install. The following partitions will be
+ created on the disk: /boot, / (filesystem root) and swap.
+
+ This mode may be used for development boxes, desktops, virtual servers, etc.
+
+data:
+ This mode uses your disk(s) for data storage, not for the operating system.
+ The system itself will run from tmpfs (RAM).
+
+ Use this mode if you only want to use the disk(s) for a mailspool, databases,
+ logs, etc.
+
+crypt:
+ Enable encryption with cryptsetup and ask again for 'sys' or 'data'.
+ You will be prompted to enter a decryption password, and will need to
+ use this password to boot up the operating system after installation.
+
+cryptsys:
+ Same as 'sys' but also enable encryption.
+
+lvm:
+ Enable logical volume manager and ask again for 'sys' or 'data'.
+
+lvmsys:
+ Same as 'sys' but use logical volume manager for partitioning.
+
+lvmdata:
+ Same as 'data' but use logical volume manager for partitioning.
+
+
+The following disk is selected:
+ vda (21.5 GB 0x0b5d )
+
+How would you like to use it? ('sys', 'data', 'crypt', 'lvm' or '?' for help) [?] sys
+
+WARNING: The following disk(s) will be erased:
+ vda (21.5 GB 0x0b5d )
+
+WARNING: Erase the above disk(s) and continue? (y/n) [n] y
+Creating file systems...
+Installing system on /dev/vda3:
+/mnt/boot is device /dev/vda1
+==> initramfs: creating /boot/initramfs-virt for 6.6.41-0-virt
+/boot is device /dev/vda1
+
+Installation is complete. Please reboot.
+alpine:~# poweroff
+
+(IT MAY BE NECESSARY TO USE '~.'.)
+
+
+BACK ON OPENBSD
+
+First check that the VM has stopped correctly:
+
+$ vmctl status
+ ID PID VCPUS MAXMEM CURMEM TTY OWNER STATE NAME
+
+And start without the CD-ROM:
+
+# vmctl start -cL -d alpine.qcow2 -m 1G alpine
+
+Network should work. From alpine try 'ping 8.8.8.8',
+'ping google.com' and 'ip a'. From OpenBSD try pinging whatever 'ip a'
+shows (should be 100.64.X.X). If that works, you should be able to
+'ssh jd@$IP'.
blob - 9916fe0714ab8b35ec7d651cbc15ecfd0bf328ea
blob + 8dd8a9bcbb54d3fb025cc91666979cc57e9201e8
--- plan.txt
+++ plan.txt
New article (a bit of a short one this time):
art/016.notes_on_dot-forward.txt
+
+
+entry: 2024-07-22
+
+Wrote a quick little article on installing Alpine Linux under
+OpenBSD VMM: art/017.how_to_install_alpine_on_vmm.txt