Home / How to / Triple Boot Arch Linux XFCE with Linux Mint and Windows 7

Triple Boot Arch Linux XFCE with Linux Mint and Windows 7

Triple Boot Arch Linux XFCE with Linux Mint and Windows 7

Arch Linux is an independently developed, i686/x86-64 general purpose GNU/Linux distribution versatile enough to suit any role. Development focuses on simplicity, minimalism, and code elegance. Arch is installed as a minimal base system, configured by the user upon which their own ideal environment is assembled by installing only what is required or desired for their unique purposes. GUI configuration utilities are not officially provided, and most system configuration is performed from the shell and a text editor. Based on a rolling-release model, Arch strives to stay bleeding edge, and typically offers the latest stable versions of most software. I have always wanted to give it a go since this is slightly different, so I decided to Triple Boot Arch Linux XFCE with Linux Mint and Windows 7. My config is pretty much basic as I will start developing it more as time goes.
Arch Linux Logo - Triple Boot Arch Linux XFCE with Linux Mint and Windows 7 - blackMORE Ops
I’ve enjoyed installing Arch Linux and my configuration is fast and quick. Total process took me less than 2 hours and out of those 2 hours, I’ve sat there doing nothing for 90mins as it was just downloading packages from repo. I’ve included my BIOS, Hardware, Grub and any other details I found useful for someone who might want to replicate it. If you decide to install Arch Linux, you probably can just copy paste it in your terminal and things should just work as it is.

Hardware Configuration:

  1. Samsung Laptop – Model NP530U4B-S01AU
  2. Intel® Core™ i5 Processor 2467M (1.60GHz, 3MB L3 Cache)
  3. Graphics Details:
    • Graphic Processor: AMD Radeon™ HD7550M
    • Graphic Memory : 1GB DDR3 (Ext. Graphic)
  4. Memory: 4GB DDR3 System Memory at 1,333MHz (on BD 4GB)
  5. Storage: 500GB S-ATAII Hard Drive (7,200RPM) with ExpressCache 16GB
  6. Connectivity:
    • Wired LAN: 10 / 100 / 1,000 Gigabit Ethernet LAN
    • Wireless LAN : Inte®l Centrino® Advanced-N 6230, 2 x 2 802.11 abg/n (up to 300Mbps), Widi Support
    • Bluetooth: Bluetooth V3.0 High Speed
  7. Input Devices:
    • Keyboard: Standard US
    • Touch Pad: Touch Pad (Scroll Scope, Flat Type, Gesture UI)
  8. UEFI: Disabled
  9. Fast Boot: Disabled
  10. Network Boot: Disabled
  11. Boot Priority:
    • USB HDD
    • CD/DVD ROM
    • Internal HDD

BIOS Configuration:

  1. UEFI: Disabled
  2. Fast Boot: Disabled
  3. Network Boot: Disabled
  4. Boot Priority:
    • USB HDD
    • CD/DVD ROM
    • Internal HDD

Existing Operating Systems:

  1. Linux Mint 15 Cinnamon
  2. Windows 7

My /dev/sda was partitioned as follows:

  1. /dev/sda (500GB, 7200RPM primary hard disk)
    • /dev/sda1 – Partition table for Window 7 – 100MB
    • /dev/sda2 – Windows 7 (ntfs) – 340GB
    • /dev/sda3 – Windows Recovery (ntfs) – 20GB
    • /dev/sda5 – GNU Linux (ext4) – 45GB
    • /dev/sda6 – SWAP Space – 2GB
    • /dev/sda7 – Linux Mint – 35GB
  2. /dev/sdb (16 GB Express Cache)
    • /dev/sdb1 – Fast Boot
    • /dev/sdb2 – Caching for Windows 7 (Express Cache)

My Grub was living in /dev/sda

I was using Linux Mint Grub (/dev/sda7).

Primary Boot OS at that time was Linux Mint Cinnamon. I decided to remove GNU Linux (I’ve only installed Linux Mint 2 days back and was still playing with it) from /dev/sda5 and install Arch Linux there.

Download ISO

Download Arch Latest ISO from: https://www.archlinux.org/download/

ARCH Linux ISO
Size: 522M
Name of ISO: archlinux-2013.12.01-dual.iso

Burn it in to a CD

Reboot Laptop with CD in bay

In Live CD:

Choose Option 1 (Boot Arch x64)

Once logged into your Live CD type the followings:

Define Keyboard

I went for US keyboard

loadkeys us

Connect to Wireless LAN:

Enable device and connect using wifimenu

Find Device name:

iw dev

Set device up

ip link set wlp2s0 up

Connect to Wireless

wifi-menu wlp2s0

Confirm connectivity:

ping www.google.com

Check Disk

fdisk –l

Create files-system:

As stated previously, I already had a partition that I was going to replace GNU Linux with Arch Linux. (/dev/sda5). So I didn’t had to repartition my hard disk, just format that partition for Arch Linux

mkfs.ext4 /dev/sda5
mkswap /dev/sda6
swapon /dev/sda6

Confirmed new partitioning

lsblk /dev/sda

Mount partition:

mount /dev/sda5 /mnt

Install Arch base system

The base system is installed using the pacstrap script. This will give you a basic Arch system. Other packages can be installed later using pacman.

pacstrap -i /mnt base

Generate fstab:

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

Check FSTAB file for unusual stuff!

vi /mnt/etc/fstab

I had nothing special here, so moving on

chroot into Arch base

I decided to go for bash shell (/bin/bash).

arch-chroot /mnt /bin/bash

In ARCH chroot Environment

Set your local and generate it

vi /etc/locale.gen

I’ve un-commented the following line in that file and saved it.

en_US.UTF-8 UTF-8

Now generate locale:

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

Set timezone

ln -s /usr/share/zoneinfo/Australia/Sydney /etc/localtime

Set clock to UTC

hwclock --systohc –utc

Set hostname

echo arch64 > /etc/hostname

Enable dhcpd

systemctl enable dhcpcd

Install required softwares

I’ve went for WiFi-related applications and grub.

pacman -S iw wpa_supplicant dialog wpa_actiond grub os-prober

Create an initial ramdisk environment

mkinitcpio -p linux

Set a password for root user

passwd

Create a grub.cfg file for reference:

I decided to create a grub.cfg file and put it in /root folder. I am not going to use Arch grub yet.

grub-mkconfig -o /root/grub.cfg

Exit from chroot environment:

exit

Once exited, we’ll be back into Live CD.

In Live CD:

Unmount /dev/sda5 from /mnt

umount -R /mnt

Reboot

We’re done with Live CD. Time to reboot.

reboot

Now remember, my old grub which was in /dev/sda and reading config from /dev/sda7 (Linux Mint) didn’t knew anything about Arch Linux. It will think I still got GNU Linux in /dev/sda5. So it’s time to fix that.

In Linux Mint

Become root:

sudo su –

Use os-prober to see all Operating systems:

os-prober

At this point my Linux Mint OS-Prober didn’t see anything except Windows 7 and Linux Mint.

Quite annoying! How to fix it?

Mount Arch Linux Partition

mount /dev/sda5 /mnt

Now we do another OS-Prob.

os-prober

Now it found it. Good then. We can generate a grub config file.

Create a new grub-config file

Before we do that, let’s make a backup of my existing grub.cfg file.

mv /boot/grub/grub.cfg /root/grub.cfg.mint

Now create a new one

grub-mkconfig -o /boot/grub/grub.cfg

Install grub into /dev/sda

grub-install --recheck /dev/sda

Update grub

update-grub
reboot

Login to new Arch Linux:

At this point I tried to login to Arch Linux, it went to a rootfs. Weird eh!

The error message was about UUID (hard disk partition not found).

No such Device: ad4103fa-d940-47ca-8506-301d8071d467.
Loading Linux core repo kernel ...
error: no such partition.
Loading initial ramdisk ...

So reboot back into Linux Mint to fix Hard disk UUID in Grub

Fix UUID in grub.cfg

grub.cfg in Linux Mint (/boot/grub/grub.cfg) shows me this:

menuentry 'Arch' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba' {
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos5'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba
        else
          search --no-floppy --fs-uuid --set=root 331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba
        fi
        linux /boot/vmlinuz-linux root=UUID=ad4103fa-d940-47ca-8506-301d8071d467 rw quiet
        initrd /boot/initramfs-linux.img
}
submenu 'Advanced options for Arch' $menuentry_id_option 'osprober-gnulinux-advanced-331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba' {
        menuentry 'Arch Linux, with Linux core repo kernel (on /dev/sda5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba' {
               insmod part_msdos
               insmod ext2
               set root='hd0,msdos5'
               if [ x$feature_platform_search_hint = xy ]; then
                 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba
               else
                 search --no-floppy --fs-uuid --set=root 331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba
               fi
               linux /boot/vmlinuz-linux root=UUID=ad4103fa-d940-47ca-8506-301d8071d467 rw quiet
               initrd /boot/initramfs-linux.img
        }
        menuentry 'Arch Linux, with Linux core repo kernel (Fallback initramfs) (on /dev/sda5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba' {
               insmod part_msdos
               insmod ext2
               set root='hd0,msdos5'
               if [ x$feature_platform_search_hint = xy ]; then
                 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba
               else
                 search --no-floppy --fs-uuid --set=root 331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba
               fi
               linux /boot/vmlinuz-linux root=UUID=ad4103fa-d940-47ca-8506-301d8071d467 rw quiet
               initrd /boot/initramfs-linux-fallback.img
        }
}

WTH:

--set=root 331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba

and

root=UUID=ad4103fa-d940-47ca-8506-301d8071d467

doesn’t match

I’ll think about it later but now I need to fix it.

I did create a grub.cfg in Arch Linux. So I need to get a copy of that to determine what Arch think is correct.

Mount Arch into Linux Mint:

mount /dev/sda5 /mnt

Copy Grub.cfg into

cp /mount /root/grub.cfg /root/grub.cfg.arch

From this grub.cfg.arch file (I renamed it for convenience) this is what I can see:

menuentry 'Arch Linux, with Linux core repo kernel' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos5'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba
        else
          search --no-floppy --fs-uuid --set=root 331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba
        fi
        echo    'Loading Linux core repo kernel ...'
        linux   /boot/vmlinuz-linux root=UUID=331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba rw  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initramfs-linux.img
}
menuentry 'Arch Linux, with Linux core repo kernel (Fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-fallback-331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos5'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba
        else
          search --no-floppy --fs-uuid --set=root 331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba
        fi
        echo    'Loading Linux core repo kernel ...'
        linux   /boot/vmlinuz-linux root=UUID=331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba rw  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initramfs-linux-fallback.img
}

That means the correct UUID is

331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba.

That’s good then.

Open Linux Mint grub.cfg in gedit:

gedit /boot/grub/grub.cfg

Replace UUID

 ad4103fa-d940-47ca-8506-301d8071d467

with

331e2ff8-fc8b-4de1-93b9-4ce5aeb7c3ba

Save the file. Reboot

Login to new Arch Linux:

This time I managed to login to Arch Linux shell. Nice. So let’s install X and a Desktop Manager

First thing we need to connect to Wifi

I installed iw, wpa_supplicant, dialog, and wpa_actiond just for that.

Connect to Wifi

wifi-menu

Install Xorg and related packages:

pacman -S xorg-server xorg-apps xorg-xinit xorg xorg-devices

Install a Display Manager:

I’ve chosen gdm as I can later install Gnome with less complications.

pacman -S gdm

Install xfce4

I’ve chosen XFCE4 as its light.

pacman -S xfce4 xfce4-goodies gamin

Update .xinitrc

echo exec startxfce4 > .xinitrc

Install required Input device packages

pacman -S xf86-input-synaptics

Enable Display Manager:

systemctl enable gdm.service
systemctl start gdm

Install any other packages you wish:

pacman –S lm_sensors laptop-detect lsb-release

Start X

startx

Triple Boot Arch Linux XFCE with Linux Mint and Windows 7 - blackMORE Ops
As you can see now I have a nice XFCE/XFCE4 desktop with all the widgets and gadgets (thanks to xfce4-goodies). Over the few days, I will continue to explore more and develop this build to suit my needs. I like eye candy but not at the expense of loosing speed. Gnome/KDE/Mate and Cinnanon would be next project. It was interesting to trible boot Arch Linux XFCE with Linux Mint and Windows 7. Arch is certainly a different territory but like any other Linux distribution, the base is same. The best part of Triple Boot Arch Linux XFCE was that you get to learn so much more about exactly which packages are required to boot up your Linux distribution. I would recommend readers to give it a try, it will make you more comfortable with Linux.

Lastly, I’ve not explained a lot of things, as I tailored this guide to just copy paste and go style. If you have a different build, I recommend reading following documents/wiki pages:

  1. Arch Linux
  2. The Arch Way
  3. Arch Compared to Other Distributions
  4. Beginners’ Guide
  5. Installation Guide
  6. FAQ
  7. General Recommendations

Thanks for reading. Feel free to comment or show me your build.

 

Check Also

Correct way of installing VirtualBox Guest Additions in Kali Linux 2016.2/2017 (Kali Rolling)

How to install VirtualBox Guest Additions in Kali Linux (Kali Rolling / Kali Linux 2016.2 / Kali 2017)

Since Kali Linux 2016 came out (also known as Kali Rolling), it seems that Official …

Changing GRUB timeout in Kali Linux - blackMORE Ops -4

Changing GRUB timeout in Kali Linux

I use Kali Linux alongside my Windows in my Laptop (yes I do use Windows …

One comment

  1. Looks like I'm not the only one who had similar issues with Grub presenting incorrect UUID. Several post shows the same solution

    I used:

    https://bbs.archlinux.org/viewtopic.php?id=148038
    https://bbs.archlinux.org/viewtopic.php?pid=12946https://bbs.archlinux.org/viewtopic.php?id=146572 https://bbs.archlinux.org/viewtopic.php?id=166042 https://bbs.archlinux.org/viewtopic.php?pid=11517

    Seems like a common issue in Arch Linux (Multibooting cases).

Leave a Reply

Your email address will not be published. Required fields are marked *