diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/README.md b/README.md deleted file mode 100644 index 3b3172054a47..000000000000 --- a/README.md +++ /dev/null @@ -1,79 +0,0 @@ -DigitalOcean Debian to Arch -=========================== -DigitalOcean deprecated Arch Linux a while back because it was relatively -difficult to support due to the rolling updates. I wrote this script to -bring it back! This script downloads a bootstrap Arch Linux image, updates it -to the latest version, then overwrites the host operating system with it. -Unlike Debian 7.x, Debian 8.x on DigitalOcean boots traditionally (through the -MBR and Grub), so no dirty *kexec* magic is needed. - -Warning / Disclaimer --------------------- -<h3>ALL DATA ON THE DROPLET WILL BE UNCONDITIONALLY DESTROYED.</h3> -This script may cause your VPS to become unbootable. -I only recommend running this script on newly created droplets with no -important data. - -Installation ------------- -1. Create a new Debian 8.x droplet (either 32-bit or 64-bit is fine). -2. In the droplet, run the following as root: - `wget https://raw.githubusercontent.com/gh2o/digitalocean-debian-to-arch/debian8/install.sh && bash install.sh` -3. Follow the instructions when prompted. -4. Sit back and relax! The system will automatically reboot once complete, - 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! |