-
-
Save idvoretskyi/9a516921fab0ad4e3ea0 to your computer and use it in GitHub Desktop.
= Arch Linux step-by-step installation = | |
= http://blog.fabio.mancinelli.me/2012/12/28/Arch_Linux_on_BTRFS.html = | |
== Boot the installation CD == | |
== Create partition == | |
cfdisk /dev/sda | |
* Create a partition with code 8300 (Linux) | |
== Format the partition == | |
mkfs.btrfs -L "Arch Linux" /dev/sda1 | |
== Mount the partition == | |
mkdir /mnt/btrfs-root | |
mount -o defaults,relatime,discard,ssd,nodev,nosuid /dev/sda1 /mnt/btrfs-root | |
== Create the subvolumes == | |
mkdir -p /mnt/btrfs/__snapshot | |
mkdir -p /mnt/btrfs/__current | |
btrfs subvolume create /mnt/btrfs-root/__current/root | |
btrfs subvolume create /mnt/btrfs-root/__current/home | |
== Mount the subvolumes == | |
mkdir -p /mnt/btrfs-current | |
mount -o defaults,relatime,discard,ssd,nodev,subvol=__current/root /dev/sda1 /mnt/btrfs-current | |
mkdir -p /mnt/btrfs-current/home | |
mount -o defaults,relatime,discard,ssd,nodev,nosuid,subvol=__current/home /dev/sda1 /mnt/btrfs-current/home | |
== Install Arch Linux == | |
nano /etc/pacman.d/mirrorlist | |
* Select the mirror to be used | |
pacstrap /mnt/btrfs-current base base-devel | |
genfstab -U -p /mnt/btrfs-current >> /mnt/btrfs-current/etc/fstab | |
nano /mnt/btrfs-current/etc/fstab | |
* copy the partition info for / and mount it on /run/btrfs-root (remember to remove subvol parameter! and add nodev,nosuid,noexec parameters) | |
== Configure the system == | |
arch-chroot /mnt/btrfs-current /bin/bash | |
pacman -S btrfs-progs | |
nano /etc/locale.gen | |
* Uncomment en_US.UTF-8 | |
locale-gen | |
echo LANG=en_US.UTF-8 > /etc/locale.conf | |
export LANG=en_US.UTF-8 | |
ln -s /usr/share/zoneinfo/Europe/Kiev /etc/localtime | |
hwclock --systohc --utc | |
echo 'idv-HP-EliteBook-840-G1' > /etc/hostname | |
nano /etc/nsswitch | |
* set the hostname | |
pacman -S wicd | |
systemctl enable wicd.service | |
nano /etc/mkinitcpio.conf | |
* Remove fsck and add btrfs to HOOKS | |
mkinitcpio -p linux | |
passwd | |
groupadd idv | |
useradd -m -g idv -G users,wheel,storage,power,network -s /bin/bash -c "Ihor Dvoretskyi" idv | |
passwd idv | |
== Install boot loader == | |
pacman -S grub-bios | |
grub-install --target=i386-pc --recheck /dev/sda | |
nano /etc/default/grub | |
* Edit settings (e.g., disable gfx, quiet, etc.) | |
grub-mkconfig -o /boot/grub/grub.cfg | |
== Unmount and reboot == | |
exit | |
umount /mnt/btrfs-current/home | |
umount /mnt/btrfs-current | |
umount /mnt/btrfs-root | |
reboot | |
== Post installation configuration == | |
=== Power management === | |
nano /etc/modprobe.d/blacklist.conf | |
* blacklist nouveau | |
Download and compile bbswitch from https://aur.archlinux.org/packages/bbswitch/ | |
nano /etc/mkinitcpio.conf | |
* Add "i915 bbswitch" to MODULES | |
* Add "/etc/modprobe.d/i915.conf /etc/modprobe.d/bbswitch.conf" to FILES | |
nano /etc/modprobe.d/i915.conf | |
options i915 modeset=1 | |
options i915 i915_enable_rc6=1 | |
options i915 i915_enable_fbc=1 | |
options i915 lvds_downclock=1 | |
nano /etc/modprobe.d/bbswitch.conf | |
options bbswitch load_state=0 | |
options bbswitch unload_state=1 | |
mkinitcpio -p linux | |
=== Hardening === | |
chmod 700 /boot /etc/{iptables,arptables} | |
nano /etc/securetty | |
* Comment tty1 | |
nano /etc/iptables/iptables.rules | |
*filter | |
:INPUT DROP [0:0] | |
:FORWARD DROP [0:0] | |
:OUTPUT ACCEPT [0:0] | |
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT | |
-A INPUT -i lo -j ACCEPT | |
-A INPUT -p udp --sport 53 -j ACCEPT | |
-A INPUT -p icmp -j REJECT | |
-A INPUT -p tcp -j REJECT --reject-with tcp-reset | |
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable | |
-A INPUT -j REJECT --reject-with icmp-proto-unreachable | |
COMMIT | |
systemctl enable iptables.service | |
nano /etc/sysctl.conf | |
* net.ipv4.conf.all.log_martians = 1 | |
* net.ipv4.conf.all.rp_filter = 1 | |
* net.ipv4.icmp_echo_ignore_broadcasts = 1 | |
* net.ipv4.icmp_ignore_bogus_error_responses = 1 | |
=== Snapshot === | |
echo `date "+%Y%m%d-%H%M%S"` > /run/btrfs-root/__current/ROOT/SNAPSHOT | |
echo "Fresh install" >> /run/btrfs-root/__current/ROOT/SNAPSHOT | |
btrfs subvolume snapshot -r /run/btrfs-root/__current/ROOT /run/btrfs-root/__snapshot/ROOT@`head -n 1 /run/btrfs-root/__current/ROOT/SNAPSHOT` | |
cd /run/btrfs-root/__snapshot/ | |
ln -s ROOT@`cat /run/btrfs-root/__current/ROOT/SNAPSHOT` fresh-install | |
rm /run/btrfs-root/__current/ROOT/SNAPSHOT | |
==== Software Installation === | |
visudo | |
* Enable sudo for wheel |
Yes, you are right.
I am unsure what I am supposed to do for line 45:
Line 45: copy the partition info for / and mount it on /run/btrfs-root (remember to remove subvol parameter! and add nodev,nosuid,noexec parameters)
Here's mine: /dev/sde1 / btrfs rw,nodev,relatime,space_cache,subvolid=257,subvol=/__current/root,subvol=__current/root 0 0
What would I do based on that line?
thanks for helping is newbie!
-Steve.
I am trying this
/dev/sde1 /run/btrfs-root btrfs rw,nodev,relatime,space_cache 0 0
it seemed to work
watch for idv the user name it appears in few places and change it to the name you want.
I got it to reboot and at line 103 i was lost and i tried to update and get a gui but it was not talking to the net. i suspect it needed a driver and that is over my head. I am giving up on arch linux just to complicated to install.
by adding btrfs and btrfs_tools to debian i got it sort of working on debian but using older versions of btrfs I may have to try harder to get suse linux to work it seems to be newer.
Very nice, clear. useful
Shouldn't it be:
?
I'm getting a
ERROR: cannot access '/mnt/btrfs-root/__current/root': No such file or directory
when trying to use the subvolumes commands.Sorry, I'm discovering BTRFS !