Debian unstable/sid, two SSDs in Btrfs RAID0, GRUB, Nvidia+Bumblebee, Openbox+Other DE stuff, HiDPI, some basic dev needs
Mostly the 2 SSDs in Btrfs RAID0 that needs made by breaking out into the shell during setup which is easy to goof troop if you don't do the steps in the right order. Not only that, but GRUB fails to install. Woo :(.
Look around here... get the right architecture and everything and you probably want the net install.
fdisk -l
umount /dev/SDX
dd if=/path/to/debian-netinst.iso of=/dev/SDX status=progress bs=4M && sync
diskutil list
diskutil unmountDisk /dev/DISKX
dd if=/path/to/debian-netinst.iso of=/dev/RDISKX bs=1m
diskutil eject /dev/disk2
Boot into UEFI instead of BIOS for this guy. Since the mouse doesn't work, might as well use the regular installer, not grahpical. Do the normal flow of things until you get to the formatting disks...
Since I'm probably looking at this guide again, it's because something got fubar. First choose Manual
. Erase data from the root and home partitions on both drives (this would be the time to get a snack or coffee). Resize drives now if needed. If it's the first time, create two equal-sized partitions across the two SSDs in the manual partition mode because it's easiest.
Press ctrl-alt-f2
to get to the prompt and enter
to enter the shell.
Look for our partitions with fdisk -l
. Currently what I'm seeing is the two SSDs at /dev/sda
and /dev/sdc
.
mkfs.btrfs -L debian -m raid0 -d raid0 /dev/sda1 /dev/sdc1
mkfs.btrfs -L home -m raid0 -d raid0 /dev/sda2 /dev/sdc2
btrfs device scan
Press crtl+alt+f1
, go back and rescan the devices. Select the debian
drive and use as btrfs journaling file system
, do not format partition, mount point /
, mount options noatime,nodiratime
. Do the same with home mounting to /home
. I put the boot EFI partion on the 3rd 5400rpm HDD since it's used a lot less and less likely to fail from the RAID setup.
Don't get me wrong, dm-crypt+LUKS is awesome. Doing at this step makes it easiest since the Debian installer lets you do it from the partition menu. So why not? Well, it's a tradeoff. Outside the obvious I-have-to-unlock-it-all-the-time scenario: 1) it's prevents your data from being accessed in the case of stolen equipment and the unit is powered off—which is kind of rare and my data being kept to myself is important, but not imperative and the likelihood of it being stolen is probably pretty low (and I say that after having my car broken into and things stolen), but more importantly 2) it's another point of failure—obvoiously you can have some issues with RAID0 and something getting corrupted, but now compounding that with either the encryption or the RAID failing is not a risk I want to take. So I'd have to take my pick: speed of RAID0 or security of dm-crypt+LUKS—and I chose speed this time around as the speed is always relevant (even if I'll barely perceive it) and the security is only really relevant in the case of catastrophe.
Yeah, hit that button.
Proceed as normal. Select yes to the popularity contest because you care about Debian. Software selection of ssh server
and standard system utilities
. Probably won't be printing much, so I can install CUPS later. ...
Proceed to install without. And reboot.
Well this sucks. Something about the installer never did like this setup. Seems some people had issues with GRUB trying to install back onto the USB disk instead of the drive specified... Well, download the hybrid ISO from here. And dd
it to a USB like we did with the Debian netinst. Boot to Linux manually from the disks menu so we can install GRUB. Once there, pop out the USB, login and go to town:
sudo apt-get update
sudo apt-get install aptitude
sudo aptitude install grub-efi
# look for the disk
fdisk -l
sudo grub-install /dev/sdb1
sudo update-grub
# reboot
sudo shutdown -r now
Reboot.
sudo aptitude install netselect-apt
sudo netselect-apt
sudo mv ./sources.list /etc/apt/sources.list
Next sudo vi
that file adding experimental, unstable, testing, and stable based on the url netselect-apt
's file provided—including the deb-src and non-free. Build a prefences file something like this:
Package: iceweasel midori chromium gimp darktable inkscape nodejs npm
Pin: release a=experimental
Pin-Priority: 1001
Package: *
Pin: release a=unstable
Pin-Priority: 500
Package: *
Pin: release a=testing
Pin-Priority: 400
Package: *
Pin: release a=stable
Pin-Priority: 300
Package: *
Pin: release a=experimental
Pin-Priority: 100
sudo aptitude update
sudo aptitude dist-upgrade
sudo aptitude install firmware-realtek firmware-iwlwifi nvidia-kernel-dkms bumblebee-nvidia openbox xserver-xorg xinit pulseaudio alsa-base alsa-utils network-manager selinux-policy-default
startx
Is it good? Cool. Exit.
sudo aptitude update
sudo aptitude install git build-essential fish axel htop ranger w3m w3m-img tmux pwgen disk-manager sakura thunar leafpad synaptic dtrx
sudo aptitude install libtool libtool-bin autoconf automake cmake g++ pkg-config unzip libmsgpack-dev libuv-dev libluajit-5.1-dev ninja-build
git clone https://github.com/neovim/neovim.git /opt/neovim
cd neovim
make CMAKE_BUILD_TYPE=Release
sudo make install
sudo aptitude install nodejs npm elixir ghc cabal-install
sudo ln -s $(which nodejs) /usr/local/bin/node
sudo aptitude install nitrogen mpv unclutter lxappearance trimage gvfs-bin apt-transport-https pavucontrol xfce4-panel rofi compton
sudo aptitude install gimp inkscape darktable hugin
sudo aptitude install fonts-fantasque-sans fonts-mplus fonts-roboto fonts-roboto-hinted fonts-symbola
Add this to the ~/.config/openbox/rc.xml
<keybind key="A-F2">
<action name="Execute">
<startupnotify>
<enabled>true</enabled>
<name>Terminal-popup</name>
</startupnotify>
<command>gmrun</command>
</action>
</keybind>
echo "Xft.dpi: 164" >> ~/.Xresources