• Shareni@programming.dev
    link
    fedilink
    arrow-up
    19
    ·
    4 days ago

    how to install arch (with btrfs and without frustration)

    Download Endeavour and click through the wizard?

    • xylol@leminal.space
      link
      fedilink
      arrow-up
      2
      ·
      4 days ago

      isnt it the same with arch? at least when I tried arch I just clicked through the install menu

      • Samueru_sama@programming.dev
        link
        fedilink
        English
        arrow-up
        7
        ·
        4 days ago

        isnt it the same with arch?

        I once to helped troubleshoot an EndeavourrOS user.

        during the process I discovered that their kernel parameters were being reset with every kernel update, this was because Endeavour was using dracut instead of mkinitcpio…

        • pyssla@quokk.au
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 days ago

          during the process I discovered that their kernel parameters were being reset with every kernel update

          That’s pretty horrid. They ought to have fixed that since. Right?

        • Shareni@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          3 days ago

          Damn, the last time I used it I could’ve sworn it was just arch with a wizard and some custom dotfiles. Although that was like 3 years ago.

    • UnfortunateShort@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      4 days ago

      Nooooo, you will have that heavily bloated Plasma desktop! That won’t run properly on my 4GB Raspberry Pi (it does)!

  • crankyrebel@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    4
    ·
    4 days ago

    Heed the ‘downside’ of using btrfs carefully before choosing that option over say, ext4, especially if you ever do a hard-shutdown, prone to power-outages, etc. It will scramble your system files.

    • Samueru_sama@programming.dev
      link
      fedilink
      English
      arrow-up
      6
      ·
      4 days ago

      especially if you ever do a hard-shutdown, prone to power-outages, etc. It will scramble your system files.

      Btrfs is made precisely so that a power outages don’t do that! and you don’t end up like ext4 with bad superblock nonsense.

      Been using Btrfs for over 3 years at this point, 0 issues and over 400 unsafe shutdowns: https://imgur.com/a/AKXFdKb

      In fact it was able to detect when my previous ssd was dying, I thought Btrfs was spewing nonsense until the next day when smartctl began to report issues as well lol.

      • crankyrebel@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        1
        ·
        4 days ago

        I have had corrupt filesystem errors with BTRFS on both of my computers due to power outages and one hard shutdown (had to), that was the end of it. I will stick to ext4, a log file system that is more stable. Used ext4 for YEARS (I am old) and never had these issues with such frequency. Stick to what is hardened and solid, BTRFS is still under development. The fanboys love to use it as the next best thing, and it does have some nice features, but stability is not one of them, at least in these type of situations.

        • Samueru_sama@programming.dev
          link
          fedilink
          English
          arrow-up
          4
          ·
          edit-2
          4 days ago

          I have had corrupt filesystem errors with BTRFS on both of my computers due to power outages and one hard shutdown (had to)

          When did this happen? what error did you get?

          Btrfs will explicitly go read only when it detects corruption, which is a good thing, with EXT4 you don’t know what is going on until it is too late.

          fwiw the only time I managed to get info from an user that had “issues” with btrfs, I discovered that what had happened is that they moved the partition that had snapshots, and if you don’t know it, this is catastrophic because this unlinks all the snapshots and suddenly everything would take many times more storage.

          Used ext4 for YEARS (I am old) and never had these issues with such frequency

          The short time I’ve used EXT4 running into bad superblock errors was something that happened almost every week, but in the end I was always able to repair the disk and recover everything.

          I’m from Venezuela, power failures are common here.

  • bacon_pdp@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    4 days ago

    Do better

    ################################################################################# #################################################################################

    A minimal Arch install procedure with encrypted /boot and /

    ################################################################################# #################################################################################

    Format virtual drive to have 1 large primary partition and mark it as bootable

    echo -e “o\nn\np\n1\n\n\na\nw” | fdisk /dev/sda

    It really is that simple to set up the partition table. o wipes the previous

    table, n creates a new partition, and a makes it bootable. w writes the changes.

    Encrypt entire volume

    Default iter is 2000 and takes 22 seconds for grub to decrypt, adjust accordingly

    cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 50000
    –use-random --verify-passphrase luksFormat --type luks1 /dev/sda1

    or if that takes too long to type or you don’t care; you can use the defaults:

    The luks1 however matters until grub finishes adding sufficient support for

    luks2. Argon2id (cryptsetup default) and Argon2i PBKDFs are not supported, only

    PBKDF2 is at this time

    cryptsetup -v --use-random -y luksFormat --type luks1 /dev/sda1

    Open for formating

    cryptsetup open /dev/sda1 root

    Actually format

    mkfs.btrfs /dev/mapper/root

    Mount partitions

    mount /dev/mapper/root /mnt

    Fix the slow install problem

    pacman -Sy pacman -S pacman-contrib cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup

    if per policy reasons you need to limit yourself to the USA

    curl “https://archlinux.org/mirrorlist/?country=US” | sed ‘s/#Server/Server/g’ \

    >| /etc/pacman.d/mirrorlist.backup

    rankmirrors -n 6 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist

    Install bootstrap

    pacstrap /mnt base linux linux-firmware btrfs-progs lvm2

    if you see bill-auger is unknown trust

    pacman -S archlinux-keyring parabola-keyring

    Setup fstab

    genfstab -U /mnt >> /mnt/etc/fstab

    Chroot into mount

    arch-chroot /mnt

    Set root password

    passwd

    Setup timezone

    ln -sf /usr/share/zoneinfo/US/Michigan /etc/localtime

    Setup locales

    echo “en_US.UTF-8 UTF-8” > /etc/locale.gen echo “LANG=en_US.UTF-8” > /etc/locale.conf locale-gen

    Set hostname

    export hostname=encom

    Use it

    echo “$hostname” >| /etc/hostname { cat <<-EOF 127.0.0.1 localhost 127.0.1.1 $hostname

    The following lines are desirable for IPv6 capable hosts

    ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters EOF } >| /etc/hosts

    Enable dhcp on ethernet

    pacman -S dhclient

    #enable wifi pacman -S iw iwd

    Fix kernel file system

    YES order matters for stupid reasons

    components=“base
    udev
    autodetect
    modconf
    keyboard
    block
    encrypt
    lvm2
    filesystems
    keyboard
    fsck”; sed -i “/^HOOKS=/c\HOOKS=(${components})” /etc/mkinitcpio.conf

    Modify: to add support for encrypt and lvm2

    build new initial ramdisk:

    mkinitcpio -p linux

    May produce warnings about lwn2, can safely ignore

    Setup grub

    pacman -S grub

    indicate /boot is encrypted

    sed -i ‘/^GRUB_CMDLINE_LINUX=/c\GRUB_CMDLINE_LINUX=“cryptdevice=/dev/sda1:root”’
    /etc/default/grub

    Enable support for encrypted /boot

    sed -i ‘/^#GRUB_ENABLE_CRYPTODISK=/c\GRUB_ENABLE_CRYPTODISK=“y”’ /etc/default/grub

    Uncomment GRUB_ENABLE_CRYPTODISK=y

    mkdir /boot/grub grub-mkconfig -o /boot/grub/grub.cfg grub-install /dev/sda

    ################################################################################# #################################################################################

    Reboot as the core setup is done and the rest can be done inside our new arch

    Linux system as root/administrator

    ################################################################################# #################################################################################

    Remove need to type luks password twice

    dd bs=512 count=4 if=/dev/urandom of=/crypto_keyfile.bin chmod 400 /crypto_keyfile.bin cryptsetup luksAddKey /dev/sda1 /crypto_keyfile.bin

    Set init to use that file

    sed -i “/^FILES=/c\FILES=/crypto_keyfile.bin” /etc/mkinitcpio.conf

    build new initial ramdisk:

    mkinitcpio -p linux

    Enable networking

    dhclient ens33

    Setup sudo group for membership and useful privileges

    pacman -S sudo vim wget groupadd sudo

    Uncomment the %sudo line

    sed -i ‘/^# %sudo/c%sudo\tALL=(ALL:ALL) ALL’ /etc/sudoers

    Setup our power user

    export USERNAME=user useradd -m $USERNAME passwd $USERNAME usermod -G sudo -a $USERNAME

    ################################################################################# #################################################################################

    If you want guix for everything else on your system use the install guix

    procedure instead of following the rest of this procedure.

    #################################################################################

    You may now logout and finish the rest of this procedure as your

    administrative account created previously

    ################################################################################# #################################################################################

    Install baseline gui

    sudo pacman -S i3-wm xorg-server xorg-xinit xf86-video-vesa xorg mesa slim
    xorg-xrdb dmenu emacs st git gcc make htop screen
    binutils stow