Here we are: I deployed Manjaro yesterday for a academic/recreational server use on a single machine using Manjaro-Architect (M-A).
1. Prepare installation:
1.1. Set virtual console:
be_latin1 for Belgian keyboard
1.2. Partition disk: I used
parted to make a custom partition since I don’t like the automatic one . I chose to put
root on the same partition because it’s easier to re-install in case of failure. I prefer also having a swap partition over a swap file because swap file is not supported by all file systems. As rule-of-the-thumb, I use
swap = 1/2*memory.
/dev/sda (165 GB) -------------------------------]
root (155 GB) ---------------| ----
swap (8.1 GB) ----]
1.6. Mount partitions: I selected
1.8. Configure mirrorlist: by speed as @oberon said.
3. Install CLI system: skip 2. and 4. since they are made for desktop install
3.1. Install base packages: I chose
linux49. Eventually, I also selected
yaourt + base-devel because I may need AUR packages.
3.1.2. I selected “Auto-install free drivers”. I recommend it if you want your Ethernet to work!
3.2. Bootloader: I selected
grub only since there will be no other OS on this machine. Installation on
3.3. Configure base: The choices for this section are more personal but I give them as an example .
3.3.1. Generate FSTAB:
recreational (Me? Predictable?)
en_US (it’s a damn server, not my parents’ laptop )
3.3.4. Timezone: Europe/Brussels, UTC
3.3.6. Add user:
manjaro. At the first glance, it’s useless for server administration but I have 2 reasons for doing it:
- It creates a directory in
/home/manjaro where I can put my maintenance stuff like git repositories and ssh configuration.
- It is a security measure: I use this sudoer account for remote administration while forbidding the remote access as
root over ssh. In
3.4. Install custom packages: The fun part!
Generally useful for a server:
cronie for scheduling jobs
ntp for being up to date with the date
openssh for the remote access and administration
net-tools for getting info about the network
Specific to my utilization and tastes:
emacs-nox (no X server needed) for the good ol’ C-x M-c M-butterfly
screenfetch, always fancy
rxvt-unicode-terminfo for compatibility with Manjaro i3 terminal
python-django for MCV use
I configured ssh access. With
systemd, I enabled and started
I had some problems with the Ethernet. In fact, I had no Ethernet anymore after reboot . The solution was:
$ ip link # look the name of your etheret, eg. enp3s0
$ sudo systemctl enable dhcpcd@enpXsX
$ sudo systemctl start dhcpcd@enpXsX
I made a hourly
cron job to update
screenfetch and put the ssh client configuration on my PC.
Remarks about M-A
- Before booting,
grub proposes to choose a keymap. However, the choice is never applied and in M-A, the keymap will be QWERTY.
- If you choose “2. Install Desktop” instead of “3. Install CLI” and if you select no desktop environment or press
Cancel, the installation will fail and get stuck on:
Eventually the following error will also be raised:
[copy-overlay] cp: cannot stat '*': No such file or directory
M-A is a powerful tool and it’s quite easy to operate. Good job!
If anyone want more precision on anything I wrote, I will gladly expand this post.
If help is needed for a wiki post, I will gladly contribute as well .
- Disabling root login over SSH was a good idea: Over the last 5 days, the server had over 200 failed attempts to connect as root user from foreign unauthorized hosts. Another username to avoid is “user”.
- To improve SSH security, I also changed the port from 22 (default) to something higher that 2048. I added a limit for failed connections so that robots IPs are automatically blocked (and it works well!).
- I expanded my
cron job for the message of the day to print the screenfetch plus the number of packages needing an update. I putted the following file in
/etc/cron.hourly/update-motd and made it executable.
screenfetch > /etc/motd
echo “$(checkupdates | wc -l) packages need to be updated.” >> /etc/motd
- After 3 months of administration, I can draw the following conclusion for Manjaro as server OS: updating the system is quite easy with
pacman and I had no compatibility problem yet, due to the small number of installed packages. I find the packages and the updates really transparent compared to Ubuntu (which runs on my cluster). The pace of updates is a drawback of Manjaro for a server use since updates can break the workflow and require attention but so far, I had more problems with updating Ubuntu servers than this Manjaro machine.