... | ... | @@ -8,7 +8,7 @@ |
|
|
|
|
|
1. Download a suitable ["Live" Desktop ISO](https://www.adelielinux.org/download/) and write it to a CD-RW disc or USB disk. For help on how to do that, [read this guide](Flashing-Installation-Media).
|
|
|
|
|
|
2. Boot the installation media. If you are having trouble with this step, please refer to your motherboard's reference manual for help on how to boot from CD or USB media.
|
|
|
1. Boot the installation media. If you are having trouble with this step, please refer to your motherboard's reference manual for help on how to boot from CD or USB media.
|
|
|
|
|
|
### Run the Installer
|
|
|
|
... | ... | @@ -24,32 +24,46 @@ The following screenshots will guide you through the installation. |
|
|
|
|
|
1. The Horizon Installer:
|
|
|
![Horizon Installer 01](/img/Quick-Start-Guides/img/installation-horizon-01.webp)
|
|
|
|
|
|
1. Choose keyboard layout:
|
|
|
![Horizon Installer 02](/img/Quick-Start-Guides/img/installation-horizon-02.webp)
|
|
|
|
|
|
1. Load proprietary firmware (optional):
|
|
|
![Horizon Installer 03](/img/Quick-Start-Guides/img/installation-horizon-03.webp)
|
|
|
|
|
|
1. Select target disk:
|
|
|
![Horizon Installer 04](/img/Quick-Start-Guides/img/installation-horizon-04.webp)
|
|
|
|
|
|
1. Select partitioning method:
|
|
|
![Horizon Installer 05](/img/Quick-Start-Guides/img/installation-horizon-05.webp)
|
|
|
|
|
|
1. Set up networking:
|
|
|
![Horizon Installer 06](/img/Quick-Start-Guides/img/installation-horizon-06.webp)
|
|
|
|
|
|
1. Verify network connectivity:
|
|
|
![Horizon Installer 07](/img/Quick-Start-Guides/img/installation-horizon-07.webp)
|
|
|
|
|
|
1. Date and time settings:
|
|
|
![Horizon Installer 08](/img/Quick-Start-Guides/img/installation-horizon-08.webp)
|
|
|
|
|
|
1. Computer hostname:
|
|
|
![Horizon Installer 09](/img/Quick-Start-Guides/img/installation-horizon-09.webp)
|
|
|
|
|
|
1. Software selection:
|
|
|
![Horizon Installer 10](/img/Quick-Start-Guides/img/installation-horizon-10.webp)
|
|
|
|
|
|
1. Boot loader (optional):
|
|
|
![Horizon Installer 11](/img/Quick-Start-Guides/img/installation-horizon-11.webp)
|
|
|
|
|
|
1. Administrator credentials:
|
|
|
![Horizon Installer 12](/img/Quick-Start-Guides/img/installation-horizon-12.webp)
|
|
|
|
|
|
1. Unprivileged accounts:
|
|
|
![Horizon Installer 13](/img/Quick-Start-Guides/img/installation-horizon-13.webp)
|
|
|
|
|
|
1. Perform installation:
|
|
|
![Horizon Installer 14](/img/Quick-Start-Guides/img/installation-horizon-14.webp)
|
|
|
|
|
|
1. Installation progress:
|
|
|
![Horizon Installer 15](/img/Quick-Start-Guides/img/installation-horizon-15.webp)
|
|
|
|
... | ... | @@ -61,8 +75,235 @@ Reboot after this is completed. |
|
|
|
|
|
1. Download a suitable ["Live" Server ISO](https://www.adelielinux.org/download/) and write it to a CD-RW disc or USB disk. For help on how to do that, [read this guide](Flashing-Installation-Media).
|
|
|
|
|
|
2. Boot the installation media. If you are having trouble with this step, please refer to your motherboard's reference manual for help on how to boot from CD or USB media.
|
|
|
1. Boot the installation media. If you are having trouble with this step, please refer to your motherboard's reference manual for help on how to boot from CD or USB media.
|
|
|
|
|
|
### Target Disk Preparation
|
|
|
|
|
|
## Disk Layout
|
|
|
This guide assumes you want a fresh installation that erases the contents of this disk. If this is not what you want, please adapt the procedures accordingly or [ask for help](https://www.adelielinux.org/contact/). Alternatively, please submit a PR to update this guide for that scenario. It is also assumed that you are performing this setup from the Live environment.
|
|
|
|
|
|
* Identify your target disk. It must not be mounted, and must be different from your system's active disk. This guide assumes `/dev/sda` is the correct target disk.
|
|
|
```sh
|
|
|
sudo fdisk -l | grep Disk\ /
|
|
|
```
|
|
|
or
|
|
|
```sh
|
|
|
lsblk | grep \ disk
|
|
|
```
|
|
|
|
|
|
* Erase the beginning of the disk. If your disk is smaller, this command should still work.
|
|
|
```sh
|
|
|
sudo dd if=/dev/zero of=/dev/sda bs=1M count=1000
|
|
|
sync
|
|
|
```
|
|
|
|
|
|
### Disk Layout
|
|
|
|
|
|
N.B. If you are using a Mac, whether Intel or PowerPC, you may need to substitute `fdisk` for `mac-fdisk` in the commands below. In some cases, an HFS "bootstrap" partition may be required.
|
|
|
|
|
|
* Create partitions. In this example, `mac-fdisk` is used but for non-Macintosh systems you should use `fdisk` and proceed only to create `boot` and `data` partitions.
|
|
|
|
|
|
```sh
|
|
|
mac-fdisk /dev/sda
|
|
|
> i # /dev/sda1
|
|
|
> C # /dev/sda2 "bootstrap"
|
|
|
- 64
|
|
|
- 100M
|
|
|
- help
|
|
|
- hfs
|
|
|
> C # /dev/sda3 "boot"
|
|
|
- 204864
|
|
|
- 100M
|
|
|
- boot
|
|
|
- ext2
|
|
|
> C # /dev/sda4 "data"
|
|
|
- 409664
|
|
|
- 487987504
|
|
|
- data
|
|
|
- ext4
|
|
|
> w
|
|
|
- y
|
|
|
> q
|
|
|
```
|
|
|
|
|
|
* Format partitions. In this example, `mkfs.hfs` is used but for non-Macintosh systems you can omit the first partition.
|
|
|
|
|
|
```sh
|
|
|
mkfs.hfs /dev/sda2
|
|
|
mkfs.ext2 /dev/sda3
|
|
|
mkfs.ext4 /dev/sda4
|
|
|
```
|
|
|
|
|
|
### Networking
|
|
|
|
|
|
* Identify your primary network interface. To do this, run `ifconfig`. This guide assumes the interface is named `eth0`.
|
|
|
|
|
|
* Enable DHCP (or manually configure your interface). This particular example disables IPv6 support, but you may wish to leave it enabled (by default).
|
|
|
|
|
|
```sh
|
|
|
sysctl -w net.ipv6.conf.all.disable_ipv6=1
|
|
|
sysctl -w net.ipv6.conf.default.disable_ipv6=1
|
|
|
dhcpcd eth0
|
|
|
```
|
|
|
|
|
|
### Mounts
|
|
|
|
|
|
* Mount disk partitions at the correct target directories. This guide assumes `data = sda4`, `boot = sda3`, `grub = sda2`, and that the bootstrap partition (Macintosh-only) is not touched by the user. In non-Macintosh scenarios, `data = sda2` and `boot = sda1` unless configured otherwise.
|
|
|
|
|
|
```sh
|
|
|
mount /dev/sda4 /target
|
|
|
mkdir /target/boot
|
|
|
mount /dev/sda3 /target/boot
|
|
|
```
|
|
|
|
|
|
### Package Repository
|
|
|
|
|
|
* Initialize the local package repository (requires network connectivity).
|
|
|
|
|
|
```sh
|
|
|
mkdir -p /target/etc/apk
|
|
|
cp -r /etc/apk/keys/ /target/etc/apk/
|
|
|
apk --root /target --initdb add
|
|
|
cp /etc/apk/repositories /target/etc/apk/
|
|
|
apk --root /target update
|
|
|
```
|
|
|
|
|
|
* Install the Adélie base and a few other packages.
|
|
|
|
|
|
```sh
|
|
|
apk --root /target add adelie-base bash-binsh ssmtp
|
|
|
apk --root /target add openrc sysvinit
|
|
|
```
|
|
|
|
|
|
### Templates
|
|
|
|
|
|
* Copy init system templates to target partition.
|
|
|
|
|
|
```sh
|
|
|
cp -PRr /target/usr/share/openrc/runlevels/ /target/etc/
|
|
|
```
|
|
|
|
|
|
* Copy shell and resolver templates to target partition.
|
|
|
|
|
|
```sh
|
|
|
cp -p /etc/shells /target/etc/
|
|
|
cp -p /etc/resolv.conf /target/etc/
|
|
|
```
|
|
|
|
|
|
### Kernel
|
|
|
|
|
|
* Install the Linux kernel and modules.
|
|
|
|
|
|
```sh
|
|
|
apk --root /target add easy-kernel easy-kernel-modules
|
|
|
```
|
|
|
|
|
|
### Hostname (optional)
|
|
|
|
|
|
* You may customize the system hostname (for DHCP and network purposes).
|
|
|
|
|
|
```sh
|
|
|
echo 'kira' > /target/etc/hostname
|
|
|
apk --root /target add netifrc netifrc-doc
|
|
|
apk --root /target add dhcpcd
|
|
|
```
|
|
|
|
|
|
### Prepare for `chroot`
|
|
|
|
|
|
* Mount `/dev`, `/proc`, and `/sys` in the target disk.
|
|
|
|
|
|
```sh
|
|
|
mount -B /dev /target/dev
|
|
|
mount -t proc none /target/proc
|
|
|
mount -t sysfs none /target/sys
|
|
|
```
|
|
|
|
|
|
### Enter the target partition
|
|
|
|
|
|
* At this point, we must hop into the Adélie partition.
|
|
|
|
|
|
```sh
|
|
|
chroot /target
|
|
|
```
|
|
|
|
|
|
#### Administrative credentials
|
|
|
|
|
|
* Set the `root` password.
|
|
|
|
|
|
```sh
|
|
|
passwd
|
|
|
```
|
|
|
|
|
|
#### System bringup
|
|
|
|
|
|
* Bring up the network interface automatically.
|
|
|
|
|
|
```sh
|
|
|
ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
|
|
|
rc-update add net.eth0 default
|
|
|
```
|
|
|
|
|
|
* Populate `/dev` automatically.
|
|
|
|
|
|
```sh
|
|
|
rc-update add udev boot
|
|
|
rc-update add udev-trigger boot
|
|
|
```
|
|
|
|
|
|
#### Bootloader (Macintosh)
|
|
|
|
|
|
* Set up the bootloader (GRUB), which may be a different partition in your setup. This guide assumes `grub-macbless`. Skip this section for non-Macintosh hardware.
|
|
|
|
|
|
```sh
|
|
|
apk add grub grub-ieee1275
|
|
|
mkdir -p /boot/grub
|
|
|
mount /dev/sda2 /boot/grub
|
|
|
sed -i /etc/update-extlinux.conf -e "s@kale@$(ls /dev/disk/by-uuid/b*)@"
|
|
|
grub-mkconfig > /boot/grub/grub.cfg
|
|
|
grub-install /boot/grub
|
|
|
grub-macbless /boot/grub/grub
|
|
|
```
|
|
|
|
|
|
* Automatic updates may be configured by creating the following script.
|
|
|
|
|
|
```sh
|
|
|
cat > /etc/update-extlinux.conf <<'EOF'
|
|
|
default_kernel_opts=ro
|
|
|
modules=
|
|
|
root=kale
|
|
|
EOF
|
|
|
```
|
|
|
|
|
|
* Download required binary blob.
|
|
|
|
|
|
```sh
|
|
|
apk add curl
|
|
|
curl -o /boot/grub/ofboot.b https://distfiles.adelielinux.org/source/grub-ofboot.b
|
|
|
```
|
|
|
|
|
|
#### Bootloader (non-Macintosh)
|
|
|
|
|
|
* Set up the bootloader (GRUB), which may be a different partition in your setup. Skip this section for Macintosh hardware.
|
|
|
|
|
|
```sh
|
|
|
apk add grub grub-bios
|
|
|
grub-mkconfig -o /boot/grub/grub.cfg
|
|
|
grub-install --boot-directory=/boot /dev/sda
|
|
|
```
|
|
|
|
|
|
#### Remote access
|
|
|
|
|
|
* Install OpenSSH server and configure it for startup.
|
|
|
|
|
|
```sh
|
|
|
apk add openssh
|
|
|
rc-update add sshd default
|
|
|
```
|
|
|
|
|
|
### Cleaning up
|
|
|
|
|
|
* Leave the `chroot` by typing `exit`.
|
|
|
|
|
|
* Reboot the system by typing `reboot`.
|
|
|
|
|
|
You should now be running Adélie. Happy hacking!
|
|
|
|