finish up debian8 README
This commit is contained in:
parent
f162ad19c0
commit
8afb88356a
68
README.md
68
README.md
|
@ -9,16 +9,72 @@ MBR and Grub), so no dirty *kexec* magic is needed.
|
||||||
|
|
||||||
Warning / Disclaimer
|
Warning / Disclaimer
|
||||||
--------------------
|
--------------------
|
||||||
This script may cause your VPS to become unbootable. If the script crashes
|
<h3>ALL DATA ON THE DROPLET WILL BE UNCONDITIONALLY DESTROYED.</h3>
|
||||||
during the overwrite phase, you will **DEFINITELY** lose all data on the VPS.
|
This script may cause your VPS to become unbootable.
|
||||||
I only recommend running this script on newly created droplets with no
|
I only recommend running this script on newly created droplets with no
|
||||||
important data.
|
important data.
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
1. Create a new Debian 8.x droplet (either 32-bit or 64-bit works).
|
1. Create a new Debian 8.x droplet (either 32-bit or 64-bit is fine).
|
||||||
2. In the droplet (either SSH or console access works),
|
2. In the droplet, run the following as root:
|
||||||
run the following as root:
|
|
||||||
```wget https://raw.githubusercontent.com/gh2o/digitalocean-debian-to-arch/debian8/install.sh && bash install.sh```
|
wget https://raw.githubusercontent.com/gh2o/digitalocean-debian-to-arch/debian8/install.sh && bash install.sh
|
||||||
|
|
||||||
3. Sit back and relax! The system will automatically reboot once complete,
|
3. Sit back and relax! The system will automatically reboot once complete,
|
||||||
and you should have a fully updated Arch Linux system in within minutes.
|
and you should have a fully updated Arch Linux system in within minutes.
|
||||||
|
|
||||||
|
Advanced Configuration
|
||||||
|
----------------------
|
||||||
|
This script supports several flags, all of which are optional.
|
||||||
|
|
||||||
|
* `--archlinux_mirror`
|
||||||
|
The Arch Linux mirror from which the bootstrap image and packages should be
|
||||||
|
downloaded. Defaults to the DigitalOcean mirror at
|
||||||
|
http://mirrors.digitalocean.com/archlinux.
|
||||||
|
* `--kernel_package`
|
||||||
|
The kernel package to install. Defaults to the vanilla `linux` package.
|
||||||
|
Other options include `linux-lts` for long term support and `linux-grsec` for
|
||||||
|
a kernel with grsecurity/PaX patches.
|
||||||
|
* `--target_architecture`
|
||||||
|
The architecture of the new Arch Linux installation. Defaults to the
|
||||||
|
architecture of the original Debian image as provided by `uname -m`.
|
||||||
|
A 64-bit Debian image may convert to either `x86_64` or `i686`.
|
||||||
|
A 32-bit Debian image may only convert to `i686`.
|
||||||
|
* `--target_disklabel`
|
||||||
|
The type of partition table to use. Defaults to `gpt` (GUID partition table
|
||||||
|
as used by EFI). The alternative is `dos` (traditional MBR).
|
||||||
|
* `--target_filesystem`
|
||||||
|
The filesystem on which the Arch Linux installation should be installed.
|
||||||
|
Defaults to `ext4`. The alternative is `btrfs`.
|
||||||
|
|
||||||
|
How it Works
|
||||||
|
------------
|
||||||
|
1. A sparse disk image is created with the same size of the droplet's disk.
|
||||||
|
2. Three partitions are made and formatted.
|
||||||
|
* **DORoot**: A "dummy" partition to keep DigitalOcean happy. When snapshots
|
||||||
|
are restored, new passwords are written here.
|
||||||
|
* **BIOSBoot**: The virtual machine BIOS cannot boot from GPT partitions
|
||||||
|
directly, so a small partition is placed here for bootloader code.
|
||||||
|
* **ArchRoot**: The main root filesystem for Arch Linux.
|
||||||
|
3. The Arch Linux bootstrap image is downloaded and unpacked onto ArchRoot.
|
||||||
|
4. `pacman -Syu` is called inside the image to pull in all the base packages
|
||||||
|
along with OpenSSH.
|
||||||
|
5. The root password and SSH host keys are copied into the image.
|
||||||
|
6. A special script called `digitalocean-synchronize` is installed into
|
||||||
|
the image. This script is run at every startup to autodetect the network
|
||||||
|
settings from the metadata service. It also detects if the droplet
|
||||||
|
was just restored, and if so, it resets the root password and regenerates
|
||||||
|
the host SSH keys.
|
||||||
|
7. The image is now ready. The script then generates a "blockplan". It is
|
||||||
|
essentially a list of instructions to image the virtual disk with the
|
||||||
|
sparse disk image without requiring any extra space.
|
||||||
|
8. A minimal root filesystem is generated on RAM so that the disk can
|
||||||
|
be unmounted.
|
||||||
|
9. The script calls `systemctl switch-root` to enter the minimal
|
||||||
|
root filesystem.
|
||||||
|
10. The disk is unmounted.
|
||||||
|
11. The blockplan is executed.
|
||||||
|
12. The bootloader (Grub) is installed.
|
||||||
|
13. Reboot!
|
||||||
|
14. Done!
|
||||||
|
|
Loading…
Reference in New Issue