2

I've tried VirtualBox, I've even given some unorthodox installation ways a go, like using Architect or Arch-Anywhere, but eventually found the vanilla ISO image to be much better and far more up to the task.

I'll go through my installation process step-by-step.


Initial setup

UEFI system with a single hard drive and a few partitions reserved for Windows (as unfortunate as it may be, I have to use it for work).

Installation strategy

  1. Decreased the size of my last Windows partition, leaving 250 GB for Arch.

  2. Inserted USB, used Rufus to format it and copy the ISO. Now that I think about it, I must've made two mistakes at this stage: a) used ISO mode instead of DD (appears to be an issue in one of the threads here); b) formatted it to MBR for UEFI and BIOS (but it's installation media, so it shouldn't matter, right?).

  3. Rebooted. Went into the settings, selected my USB drive as the booting device.
  4. Looked up efivars, but the directory didn't exist (unlike what the Beginners' Guide states, and I clearly have a GPT system).
  5. Created one partition for /boot and another one - for /. This is where the GUI helpers (Architect and Arch-Anywhere) failed completely, because somehow they'd let me partition the drive manually but wouldn't allow mounting directories. Also, as I later found out, parted and gdisk didn't work quite as expected either: both would leave unallocated space between Linux partitions and the Windows ones, and somehow both ignored the schemes I'd choose (FAT32 and Ext4 turned out as a single Ext2 partition for one tool and as a FAT32 and an Ext3 partition for the other). And while the empty space I can explain (confusion due to print printing information in GB and the actual commands using GiB for some weird reason), I have no idea how Ext4 would result in either Ext2 or Ext3. Anyway, that bit is not particularly crucial, because I can always format my system properly under Windows.
  6. Where it starts getting mystical for me is this stage: pacstrap. No matter what I did to the mirrorlist on the vanilla ISO, it would fail connecting to repositories. Normally I'd blame Australia and its glorious Internet connectivity, but I've actually seen those repositories work within Architect and Arch-Anywhere. "Okay," I said to myself, "to hell with those libraries, it's an optional step, I'll try booting the damn thing."
  7. So I've tried booting it. And bootctl install came up with something around the lines of "can't boot into a non-FAT32 non-EFI partition". That's where I lost all hope and started contemplating leaving IT and becoming a professional alcoholic or a full-time scrubber-wielder.

All in all, I'd just like to know where I screwed up. I've learnt the Beginners' Guide by heart, but it didn't help me, so if anyone has a functioning guide that actually explains every step for my particular situation (because I'd say the Guide doesn't), I'd love to see it. I'm also curious as to why parted and gdisk were being so weird. I don't quite understand how "mounting" works either.

  • 1
    You should have bailed at 4. Try using dd, or if you don't have access to a Linux box, USBWriter, to create the bootable image... – jasonwryan May 30 '16 at 3:41
  • Thank you, I'll give it a try. Should I create a separate EFI partition for Arch, or should I increase the size of sda1 and mount /mnt/boot there? – Victor P. May 30 '16 at 3:47
  • See wiki.archlinux.org/index.php/… – jasonwryan May 30 '16 at 3:51
  • 1
    I find systemd-boot to be much simpler to use than Grub, but either will work. – jasonwryan May 30 '16 at 4:42
  • 1
    That's OK. Write up what you did as an answer and mark it as accepted, that way others that find this will understand what you did to resolve it. – jasonwryan Jun 6 '16 at 16:39
2

I would like to thank jasonwryan for pushing me in the right direction. At this stage, I'm sure I'd be able to install Arch blindfolded and drunk, but without his help I would not have progressed far.

How I solved my problem:

  1. I've used EaseUS Partition Master under Windows to create a partition for Arch. I've tried using parted and gdisk on the live system, but I found them confusing: information on devices and parts would be displayed in MB and GB, however, the commands themselves seem to be working with MiB and GiB. When it comes to partitioning your hard drive, I'd recommend you go with the safest option at your disposal, because you might screw up your system otherwise. I've used mkfs.ext4 to format the resulting partition, because EaseUS Partition Master only supports ext2 and ext3.
  2. I've opened up the UEFI boot menu. My initial problem was that it didn't pick up the correct booting file on my usb (that was the case with USBs created by Rufus, USBWriter and dd), and hence the /sys/firmware/efi/efivars directory did not get populated. So I had to manually add a boot option and navigate to the .efi file on the Arch Linux installation media. This might not be the case for you, but if your efivars is empty, you should not proceed with the installation, as you will, effectively, be running MBR mode (that's as far as I understand it).
  3. Another quick note... If you have a machine running Windows, you will most likely have your EFI partition set to 100 MB. The EFI System Partition page explicitly mentions the importance of setting it to 260 MB at the very least (if I remember it right). However, if you are partitioning your drive under Windows, like I did, you will not be able to do anything about it: to resize the EFI partition you'd have to move C:, and Windows won't allow that when you're running the system. I've searched the Internet and the Arch Wiki, and, apparently, 100 MB is just fine, so you can probably safely ignore that 260 MB instruction.
  4. The Beginners' Guide (the current version thereof) suggests you chroot into /mnt, and then the next sections tell you to set your locale and timezone. Before you do that, you'll have to exit the chroot environment. And don't forget to get back into it afterwards.
  5. I've used systemd-boot for dual-booting, because it comes with the Live CD, and it's very easy to set up and use. It will automatically pick up your Windows installation and your firmware interface, however, you'll have to create a configuration file for Arch. So just nano /boot/loader/entries/arch.conf (or whatever you want to call the file) and make sure you properly set up title, linux, initrd and options root= inside it. I don't recommend using /dev/sdxY after options root=, because if you're running a UEFI system, its partition scheme will most likely change from boot to boot (a device might get called sda one time and sdb the other). I recommend using UUID to refer to your device. To find out what UUID your devices have, just run lsblk -o +UUID. Write down the UUID (or use | and grep if you are confident), and use it in conjunction with options root=UUID= inside your entries/arch.conf file. Don't forget to update loader/loader.conf accordingly.
  6. You should be able to boot into your Arch system now.

Final notes

  1. Make sure you are connected to the network before you install any packages off the Web. Run ip link to list available devices and then follow the instructions within Beginners' Guide to connect to it.

  2. Always run pacman -Syu prior to downloading any packages. If you don't, you might "break" your system (or just fall asleep reading through all the page returned 404's).

  3. If you decide to set up a Desktop Environment, make sure you install the relevant video drivers. Otherwise you might end up with a boot process hanging at [OK] Reached target Graphical Interface. If that's the case, Ctrl+Alt+F2, log into your system as root and install the drivers for your system. reboot - and it should work now.

  4. Most Desktop Environments' login prompts will not list root as an option. If you want to log in as root, refer to that particular DE's manuals or forget about it altogether and use Ctrl+Alt+F2 for all your rooting needs. And don't forget to set up a user account, add it to the wheel usergroup and run EDITOR=nano visudo and comment out the lines that give wheel root permissions. A user account seems to be required to install packages from AUR as well.

  • A quick note: whether the firmware is in UEFI mode or legacy BIOS compatibility mode is determined by a firmware setting ("BIOS setup"). It is not dependent on the partitioning scheme (MBR or GPT) of the boot disk. They are related though: booting in UEFI mode depends on an EFI System Partition on a GPT disk. BIOS mode is normally used with MBR partitions, though you can use GRUB to boot a machine in legacy mode with a GPT disk. – Johan Myréen Oct 24 '16 at 15:21
  • You should not exit the chroot environment before setting the locale and timezone (point 4 in you answer). The point is to set the locale and time zone on the final system, so the name /etc/localtime should be relative to the root directory of the installed system. – Johan Myréen Oct 24 '16 at 15:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.