"phoenix" is my new desktop machine, built specifically to be an inexpensive ($600 reusing an existing power supply and disks) machine capable of running many VMs and utilizing VT-d, Intel's IOMMU.
- Gigabyte GA-Z77-D3H motherboard
- Intel i7 3770 (non-K) quad core processor
- initially, 2x 8G DDR3 RAM (waiting for me to decide if it's worth buying the other 16G)
- Cooler Master HAF-912 case
- 3.25TB of SATA rotating disk, pulled from my previous machine
- Arch Linux 2014-03-01, UEFI booting
This document is my personal reference for how I installed Arch on the machine, in case I ever need to replicate it. It's being published because, well, there's a chance it could be useful to someone else. And what's the point of keeping something like this private? This is not a tutorial, it's my notes. It should make sense to someone who understands the Arch install process.
- MIT > PC Health Status
- CPU Warning Temp: Disabled -> 90C
- CPU Fan Fail Warning: Disabled -> Enabled
- tried this but it seemed to prevent boot: 2nd Sys Fan Fail Warning: Disabled -> Enabled
- tried this but it seemed to prevent boot: 3rd Sys Fan Fail Warning: Disabled -> Enabled
- BIOS Features
- Intel Virtualization Technology: Disabled -> Enabled
- CSM Support - Storage Boot Option Control: Legacy Only -> UEFI First
- CSM Support - Display Boot Option Control: Legacy Only -> UEFI First
- Peripherals
- SATA Mode Selection: IDE -> AHCI
- tried this but it seemed to prevent boot: XHCI Hand-off: Enable -> Disabled
- tried this but it seemed to prevent boot: Init Display First: Auto -> IGFX
- Internal Graphics Memory Size: 64M -> 256M
- Power Management
- Soft-Off by PWR-BTTN: Instant-Off -> Delay 4 Sec.
- AC BACK: Always Off -> Memory
Disks:
- /dev/sda - wwn-0x50014ee25a2ec62d / 1de43174-5eae-407f-bdc0-547acb961641
- /dev/sdb - wwn-0x50014ee05674a5ad / 00053c0e
- /dev/sdc - wwn-0x50014ee0abde23c5 / 0005d421
- /dev/sdd - wwn-0x50014ee25702509d / 9043b14f
gdisk /dev/sda
- sda1 - 4G ef00 EFI System partition (/boot)
- sda2 - 100G 8300 "slash" partition (/)
- sda3 - 100G 8300 "var" partition (/var)
- Format partitions
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
mkfs.reiserfs /dev/sda3
- Mount Partitions
mount /dev/sda2 /mnt
cd /mnt; mkdir boot var home mnt
mount /dev/sda1 boot
mount /dev/sda3 var
mount /dev/sdb2 home
cd mnt
(pwd is/mnt/mnt
)mkdir sparesys space1 backup temp
mount /dev/sdb1 sparesys
mount /dev/sdb3 space1
mount /dev/sdc1 backup
vi /etc/pacman.d/mirrorlist
- move gtlib to #1 and remove the german mirror at #2pacstrap /mnt base
genfstab -p /mnt >> /mnt/etc/fstab
arch-chroot /mnt
echo "phoenix.jasonantman.com" > /etc/hostname
ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
vi /etc/locale.gen
and uncomment theen_US.UTF-8
line;locale-gen
mkinitcpio -p linux
passwd
- set root passwordpacman -S gummiboot
gummiboot --path=/boot install
- Create
/boot/loader/entries/arch.conf
with the following contents, using the correct PARTUUID of your root partition:
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=dd24758c-68a8-40ac-875c-df812b4b0e88 rw
- Create
/boot/loader/entries/archfallback.conf
with the following contents, using the correct PARTUUID of your root partition:
title Arch Linux Fallback
linux /vmlinuz-linux
initrd /initramfs-linux-fallback.img
options root=PARTUUID=dd24758c-68a8-40ac-875c-df812b4b0e88 rw
exit
to leave chrootumount -R /mnt
and thenreboot
I initially messed with a whole bunch of BIOS settings. This left me with an un-bootable system. If you followed the above, it should work. If you did the same stuff I did initially (i.e. mess with the BIOS a lot, and omit steps 15 and 16 above).
-
On the initial installation attempt, after step 16, the machine failed to boot and didn't even show the POST/splash screen. I used the reset button and got the same behavior, with what sounded like a long beep at power-on before the fans kicked in. The monitor light was on (i.e. getting signal) but screen was black. Resetting again and quickly hitting the "Del" key got me into BIOS config.
-
Going into the BIOS, in "MIT > PC Health Status", I reset "CPU Warning Temp", "CPU Fan Fail Warning", "2nd Sys Fan Fail Warning" and "3rd Sys Fan Fail Warning" back to their defaults of Disabled. This cleared up the long error beep/buzz at boot, but still left me at a black screen.
-
Reset again with Arch USB key in place, once again seemed to be the same thing - sounded like a valid boot, but blank black monitor (but not showing no signal). This was strange since the monitor worked before with the USB key (maybe this has a BIOS that needs multiple reboots for some settings to take effect?).
-
Reset again, "del" into BIOS. On "Peripherals" screen, set "Init Display First" back to default of "Auto" from "IGFX". Save and Exit. No change.
-
BIOS again, on "Peripherals" screen, set "Internal Graphics Memory Size" from 256M back to default of 64M. Save and Exit.
-
Still no splash screen, still black monitor. BIOS again, "Save & Exit" screen, "Load Optimized Defaults". Save & Exit Setup. Reboots. Get splash screen, then "EFI Default Loader" on big bar in middle (gummiboot).
No loader found. Configuration files in \loader\entries\*.conf are needed.
-
Ctrl+Alt+Del, "del" into BIOS. "Peripherals" screen, set "SATA Mode Selection" from default of "IDE" to "AHCI". Save and Exit. Reboots. Get splash screen, then "EFI Default Loader". Same "No loader found" error.
-
Boot to Arch USB again. Mount the /boot partition (sda1) and create the
/boot/loader/entries/arch.conf
and/boot/loader/entries/archfallback.conf
files per the Gummiboot Wiki Page. -
Now it boots, but I just see:
:: running early hook [udev]
:: running hook [udev]
:: Triggering uevents...
:: performing fsck on '/dev/sda1'
fsck: fsck.vfat: not found
fsck: error 2 while executing fsck.vfat for /dev/sda1
ERROR: fsck failed on '/dev/sda1'
:: mounting '/dev/sda1' in real root
:: running cleanup hook [udev]
ERROR: Root device mounted successfully, but /sbin/init does not exist.
Bailing out, you are on your own. Good luck.
sh: can't access tty; job control turned off
[rootfs /]#
-
By the time I finished typing this up, I realized that I'd added
/boot
's partuuid for theroot
line in the loader.conf entries. So, reboot, F12 at splash screen to get the boot menu, boot to the Arch USB stick again, mount /boot again, and correct the loader config entries with the right partuuid (sed is handy for this, as is using tab completion at the shell to get the paths onto the line). -
Reboot. At this point I'm actually booted into the system. Login as root for the first time,
reboot
and "del" into BIOS. Update BIOS settings to what they should be, per above (i.e. undo the "Load Optimized Defaults" that I did earlier). -
Exit saving changes. Splash screen doesn't show up, but we boot to the OS and fsck's start running. Let them run. Once we're booted to the OS, reboot again to make sure no BIOS changes had a delayed effect.
- Boot the installed system and login as root.
- Continue with the initial OS setup as documented in README.md.