Created
September 28, 2015 13:36
-
-
Save twheel/c7402f8246f96b4fc4a3 to your computer and use it in GitHub Desktop.
Revisions
-
twheel created this gist
Sep 28, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,119 @@ Protocol that worked to install Arch on a remote server Situation: host provides CentOS image but not one for Arch. Default CentOS install includes two hard drives in a RAID 1 setup, mapped as /dev/mapper/vg-root and /dev/mapper/vg-swap Guides: https://wiki.archlinux.org/index.php/Remote_installation https://wiki.archlinux.org/index.php/Install_from_existing_Linux https://wiki.archlinux.org/index.php/Install_from_SSH http://ordinatechnic.com/os-specific-guides/arch/archlinux-installing-from-an-existing-linux-installation (Replace MY_HOSTNAME, MY_IP_ADDRESS, MY_DOMAIN, MY_NAMESERVER1, MY_NAMESERVER2, MY_NETWORK_NAME below with correct values.) CentOS: swapoff /dev/mapper/vg-swap fdisk /dev/mapper/vg-swap mke2fs -j /dev/mapper/vg-swap yum -y install rng-tools rngd -r /dev/urandom cd /tmp curl -O https://mirrors.kernel.org/archlinux/iso/latest/archlinux-bootstrap-2015.09.01-x86_64.tar.gz tar xzf archlinux-bootstrap-2015.09.01-x86_64.tar.gz cd root.x86_64 vi etc/pacman.d/mirrorlist /bin/cp -f /etc/resolv.conf etc mount -t proc /proc proc mount --rbind /sys sys mount --rbind /dev dev chroot /tmp/root.x86_64 /bin/bash First chroot: pacman-key --init pacman-key --populate archlinux pacman -Syyu pacman -S base mkdir /mnt/arch mount /dev/mapper/vg-swap /mnt/arch pacstrap /mnt/arch base genfstab -p /mnt/arch/ >> /mnt/arch/etc/fstab arch-chroot /mnt/arch/ Second chroot: passwd pacman -S grub echo MY_HOSTNAME > /etc/hostname ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime sed -i 's/#en_US/en_US/' /etc/locale.gen locale-gen echo LANG=en_US > /etc/locale.conf vi /etc/mkinitcpio.conf Add the dm_mod and raid1 modules to the MODULES list Add the mdadm_udev and lvm2 hooks to the HOOKS list after udev (or mdadm instead of mdadm_udev) mkinitcpio -p linux sed -i 's/use_lvmetad = 1/use_lvmetad = 0/' /etc/lvm/lvm.conf grub-install --target=i386-pc --recheck /dev/sda grub-install --target=i386-pc --recheck /dev/sdb grub-mkconfig -o /boot/grub/grub.cfg pacman -S openssh systemctl enable sshd vi /etc/ssh/sshd_config PermitRootLogin yes # (For now) vi /etc/systemd/network/MY_HOSTNAME.network [Match] Name=MY_NETWORK_NAME [Network] Address=MY_IP_ADDRESS DHCP=ipv4 vi /etc/resolv.conf search MY_DOMAIN nameserver MY_NAMESERVER1 nameserver MY_NAMESERVER2 systemctl enable systemd-networkd mdadm --detail --scan >> /etc/mdadm.conf cat /etc/mdadm.conf # make sure it looks OK exit First chroot: exit CentOS: reboot Booted into Arch with /dev/mapper/vg-swap as / mkfs.ext4 /dev/mapper/vg-root mkdir /mnt/newsys mount -t ext4 /dev/mapper/vg-root /mnt/newsys cp -a /boot /etc /home /opt /root /srv /usr /var /mnt/newsys cd /mnt/newsys ln -s usr/bin bin ln -s usr/bin sbin ln -s usr/lib lib ln -s usr/lib lib64 mkdir proc sys dev run mkdir -m 1777 -p tmp mount -t proc /proc proc mount --rbind /sys sys mount --rbind /dev dev mount --rbind /run run pacman -S arch-install-scripts genfstab -p /mnt/newsys/ > /mnt/newsys/etc/fstab # arch-chroot /mnt/newsys/ chroot /mnt/newsys /bin/bash From chroot: grub-install --target=i386-pc --recheck /dev/sda grub-install --target=i386-pc --recheck /dev/sdb grub-mkconfig -o /boot/grub/grub.cfg exit From Arch: reboot After reboot: mkswap /dev/mapper/vg-swap swapon /dev/mapper/vg-swap Add /dev/mapper/vg-swap to /etc/fstab Configure server...