How to Install Ubuntu 14.04 with RAID 1 using desktop installer?
Solution 1
Edit: This guide does not take UEFI boot into account. Additional or different steps may be required if UEFI boot is desired. This guide assumes legacy boot!
It is true, that the ubiquity
installer does not know about mdadm
software raid devices. Also it is true, that the live-cd is missing the mdadm
raid administration tool. However, doing some work by hand, it is very much possible to install Ubuntu on RAID1.
In the following I will assume two identical hard disks (/dev/sd[ab]
) which will be used completely for our new install. To simplify the recovery if one drive fails, there will be only one mdadm
-volume /dev/md0
which will then be partitioned for /
, swap
and data storage, e.g. /home
.
After booting up the live-cd and (if necessary) configuring network access, open up a terminal and assume root access sudo -s
apt-get install mdadm
Now we create a single primary partition each of /dev/sda and /dev/sdb from sector 2048 to the end of the disk, for example using sudo fdisk
. I also like to already set the partition type to fd
for linux raid autodetection. The keystroke-sequence in fdisk
(if the disk is emptyin the beginning, meaning no partitions) is n <return> p <return> 1 <return> 2048 <return> <return> t <return> fd <return> w <return>
.
Now we create the mdadm
volume:
mdadm --create /dev/md0 --bitmap=internal --level=1 -n 2 /dev/sd[ab]1
I noticed, that the ubiquity
installer also does not quite manage to create partitions inside this /dev/md0
, so I also did this by hand - again using fdisk
. So on /dev/md0
create the following partitions:
-
/dev/md0p1
for your root filesystem, the size of course depending upon how much software you are going to install. -
/dev/md0p2
for swap, the size of course also depending on what you use the machine for and how much ram it's got -
/dev/md0p3
for /home, all the space that's left
After that we can begin the Installation. Make sure to start the installer from the terminal with the -b
option, because installing the bootloader will fail anyway:
ubiquity -b
Make sure to go for manual partitioning and "use" the 3 partitions you just created and tick the format
checkbox for /
and /home
so a filesystem will be created.
After the installation the system is not yet bootable, so do not restart the box right away. We need to chroot
into the installed system and fixup some stuff:
sudo -s
mount /dev/md0p1 /mnt
mount -o bind /dev /mnt/dev
mount -o bind /dev/pts /mnt/dev/pts
mount -o bind /sys /mnt/sys
mount -o bind /proc /mnt/proc
cat /etc/resolv.conf >> /mnt/etc/resolv.conf
chroot /mnt
apt-get install mdadm
nano /etc/grub.d/10_linux # change quick_boot to 0
grub-install /dev/sda
grub-install /dev/sdb
update-grub
exit
Now the newly installed system is ready to boot. Have fun!
Solution 2
Do not install Ubuntu Desktop CD with RAID 1. My advice:
- Use the Ubuntu Server CD to have a guided RAID 1 install. The manual for this is here (ignore the LVM part, not needed) :
https://help.ubuntu.com/lts/serverguide/advanced-installation.html - After that install the Ubuntu desktop environment with
sudo apt-get install ubuntu-desktop
- Reboot and you have a Ubuntu desktop (installed with the server cd).
Akshat
Updated on September 18, 2022Comments
-
Akshat almost 2 years
Many people claim that it is impossible to install Ubuntu onto RAID 1 with the Desktop CD. Is this really true? If not, how can it be done?
-
umpirsky over 9 yearsWill it ever be supported out of the box? Is there any reason not to offer this feature. In the perfect world there should be option for RAID install.
-
MadMike over 9 years@Mwithii says: "The guide is ok, except for the "apt-get install mdadm" in chroot that was not working as is. I had to "cp /etc/resolv.conf /mnt/etc/resolv.conf" to solve as described here: ubuntuforums.org/…"
-
Peter Cordes over 9 yearsI'm not seeing a way to get Ubiquity to put a filesystem directly on an md device. I don't particularly want to partition my md devices; I'd rather have multiple RAIDs for different filesystems. That way I could potentially keep
/
and/home
redundant with an old small drive, while/data
where I put big files is degraded until I get around to getting a replacement that's as big as the original drives. (semi-made-up example, various other scenarios should be obvious.) -
Akshat over 9 years@PeterCordes: Copying only the mdadm deb is not enough, it needs to pull some dependencies. I really should have added something about
resolv.conf
to the original posting. Replacing it (like @Mwithii proposed) might break the automatic configuration by theresolvconf
package. Better do the following:cat /etc/resolv.conf >> /mnt/etc/resolv.conf
. -
Peter Cordes over 9 yearsmdadm doesn't have any
depends:
, onlyrecommends:
. I copy the .deb to my flash drive and install it (and smartmontools ) after booting a live CD/USB. -
Peter Cordes over 9 yearsI wanted to test GRUB booting a filesystem on a RAID10,f2. The extra hoop for GRUB to jump through of a partition on a RAID on a partition is a bit much.
-
Peter Cordes over 9 years@Sunday: good suggestion to try making filesystems first. Ubiquity noticed that, and let me tell it to put / on the existing
md0
without partitioning it or even re-doing themkfs
. (Which also allows using non-default options likemkfs.xfs -m crc=1,finobt=1
that mkfs leaves off until kernel support for them has been around for years.) Anyway, the install finished, but thengrub-install
failed. Sorting that out now. -
umpirsky about 9 yearsGrub install failed for me:
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible. grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
Looks like boot parttition is missing? Maybe creating bios boot partition on both sda and sdb will help, like on serverfault.com/questions/386041/…? -
umpirsky about 9 yearsI followed this instructions and installed grub without errors. Everything went fine, but after reboot, there were no boot options. I was prompted with BIOS with no boot options to choose from. The only difference in my case is that raid level is 0, not 1. @Sunday Any hints?
-
therealmarv about 9 yearsthis seems pretty outdated from 2010.
-
umpirsky about 9 years@therealmarv Yes, must find new solution.
-
therealmarv about 9 yearsI think the overall better solution is to use a Ubuntu Server CD with very good RAID1 support and install everything like in the official docs: help.ubuntu.com/lts/serverguide/advanced-installation.html then at the end install
sudo apt-get install ubuntu-desktop
and the server is also a desktop. -
umpirsky about 9 years@therealmarv Maybe, but I read somewhere that there are some drawbacks with this approach. Desktop distribution is somehow different.
-
Akshat about 9 yearsI think it is well known (and to be expected), that the server installer has RAID support. This question however was specifically about clarifying wether the desktop installer could be used anyhow. But thanks for letting us know anyway!
-
Niclas Börlin almost 9 years@Sunday: I was looking for the same solution as you, except I had an UEFI system. You are correct that a few tweaks were needed for UEFI (details: askubuntu.com/questions/660023/…). Furthermore, I needed to insert a sleep in the local-premount scripts, otherwise I ended up at the grub rescue prompt when I disconnected one of my drives for testing! Does your solution work without a sleep if you unplug one of the disks?
-
umpirsky over 8 years@Sunday maybe, I am not familiar with it. I have Asus Zenbook and there are some UEFI related options in BIOS.
-
kasperd over 8 yearsYour procedure worked for me with one modification. After starting the installer and configuring mount points, I would open a root shell and
chroot /target
. Then copymdadm.conf
from live system to installed system. After this I could proceed with the normal install, and even installing GRUB worked. -
kasperd over 8 yearsI am left with one problem though. During boot I get an error message saying
error: diskfilter writes are not supported.
-
kasperd over 8 yearsAh, that was the
quick_boot
setting was for. Changing that to 0 and runningupdate-grub
fixed that problem for me. -
umpirsky over 8 yearsShould same work for RAID0?
-
Akshat over 8 yearsPropably. But I would leave the swap partition out of the raid0 and create two seperate swap partitions, because the kernel automatically does load-balancing between multiple swap spaces and this could give better performance than a single swapspace on a raid0.
-
umpirsky about 8 years@Sunday Looks like something has changed, and this instruction needs to be updated, after installing, I'm getting some errors. It still works, but would be good to have this fixed, I had troubles and unable to boot after few months. I would appreciate if you take a look at my question askubuntu.com/questions/766355/error-unknown-command-hwmatch. Thanks in advance.
-
Akshat about 8 years@umpirsky I added a warning to the guide. Please look into askubuntu.com/questions/660023/….
-
umpirsky about 8 years@Sunday Yes, I was kinda aware of this, but a year ago when I was installing 15.04, I created instruction gist.github.com/umpirsky/6ee1f870e759815333c8 which was combination of this 2, and was working perfectly. Now with 16.04 UbuntuGnome, I have this askubuntu.com/questions/766355/error-unknown-command-hwmatch problem. So I'm trying to identify what should I change in my gist or how to fix this error. Thanks!