






















安装基于Ubuntu20.04 Desktop的Raid1。由于采用UEFI/GPT方式作为系统启动方式,在安装过程中出现了很多异常情况。本文记录安装的过程。
安装步骤
制作好的Ubuntu启动盘(U盘或者CD);
装有两块相同型号及容量的硬盘的台式机,台式机连接网络;
安装需要的软件(mdadm和grub-efi);
使用gparted软件进行分区,创建efi分区;
使用mdadm创建RAID分区;
运行ubiquity,进行安装;
进入已安装的系统,使能boot,并进行备份Boot至另一块硬盘;
具体过程
sudo dd if=./ubuntu-14.04.3-desktop-amd64.iso of=/dev/sdb4
1
if:镜像文件;
of:要写入的U盘名称。
启动盘启动
设置BIOS的启动方式,选择U盘或者CD启动。在出现选择方式的时候,选择“Try ubuntu without installing”。
安装mdadm和grub-efi
使用如下命令安装软件包:
sudo apt-get install mdadm grub-efi
1
4. 硬盘分区
由于EFI启动文件不能安装在RAID中,所以要为EFI先建立分区。将两个硬盘(1T硬盘)分别分为三个分区:
500MB分区,FAT32格式,Flag为Boot:用于安装EFI启动文件;
200G,Ext4格式,Flag为Raid:用于RAID1 安装系统;
750G,Ext4格式,Flag为Raid,用于RAID1数据存储。
创建RAID分区
sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]2
sudo mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[ab]3
1
2
md0:表示RAID盘符数字0;
-l1:表示创建RAID1;
-n2:表示两块硬盘。
启动Ubuntu安装
运行以下命令安装,注意带上-b,否则安装将失败:
sudo ubiquity -b
在选择安装方式一步,选择“其他”。
会看到有三个硬盘:
/md0
/md1
/sda
—/sda1
—/sda2
—/sda3
/sdb
—/sdb1
—/sdb2
—/sdb3
选择md0格式化创建分区表之后,进行分区操作(以8GB内存、1TB硬盘为例)。
首先在起始处创建190GB的空间,Ext4格式,用于挂载“/”根目录文件;
然后在结尾处创建10GB左右的SWAP空间,用做交换空间;
选择md1格式化创建分区表后,进行分区操作,所用空间用作/home。
(注意:在这个过程中sda1,sdb1为Fat32格式)。
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
1
2
3
4
5
6
7
8
配置启动:
nano /etc/grub.d/10_linux
1
2
禁止quik_boot将避免Diskfilter writes are not supported的问题。
安装需要的软件:
apt-get install -y grub-efi-amd64
apt-get install -y mdadm
1
2
安装完之后,修改/etc/mdadm/mdadm.conf ,删除索引,如下:
修改前;
ARRAY /dev/md/0 metadate=1.2 UUID=b42774f4:03ebd7fe:8341599e:b0f48bd1 name=ubuntu:0
修改后:
ARRAY /dev/md/0 UUID=b42774f4:03ebd7fe:8341599e:b0f48bd1
最后修改/etc/default/grub,如下:
修改前:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
1
2
修改后:
GRUB_CMDLINE_LINUX=""
1
2
8. 添加延时脚本
添加延时脚本是为了等待RAID设备启动就绪。没有延时,可能由于RAID没有启动完成,造成一些问题。为了避免这些问题,添加一定的延时,保证RAID启动。
创建/usr/share/initramfs-tools/scripts/local-premount/sleepAwhile,写入一下代码:
echo
echo "Wait for 30 Seconds"
sleep 10
echo "Wait for 20 Seconds"
sleep 10
echo "Wait for 10 Seconds"
sleep 10
echo "End Waiting"
1
2
3
4
5
6
7
8
9
使能脚本并安装到系统中:
chmod a+x /usr/share/initramfs-tools/scripts/local-premount/sleepAwhile
update-grub
update-initramfs -u
1
2
3
9. 使能从第一个硬盘启动
现在需要配置UEFI启动的参数,如下:
mount /dev/sda1 /boot/efi
grub-install --boot-directory=/boot --bootloader-id=Ubuntu --target=x86_64-efi --efi-directory=/boot/efi --recheck
update-grub
umount /dev/sda1
1
2
3
4
以上操作,将启动引导装在/boot/efi/EFI/Ubuntu中。
dd if=/dev/sda1 of=/dev/sdb1
1
最后,将/sdb1加入到启动目录中,如下:
efibootmgr -c -g -d /dev/sdb -p 1 -L "Ubuntu #2" -l '\EFI\Ubuntu\grubx64.efi'
1
至此,安装的系统将可以分别从/sda和/sdb硬盘上启动。
exit //退出chroot
exit //退出sudo -s
sudo reboot //复位
1
2
3
12. 测试系统启动
将卸下来一块硬盘,上电启动,观察系统启动情况。同上,测试另一块硬盘。
sudo mdadm -D /dev/md0 /dev/md1
sudo cat /proc/mdstat
1
2
根据检查到的信息,提示只有一个设备处于active sync状态,然后将缺失的硬盘添加到raid1的md0,md1中,如下:
sudo mdadm --manage /dev/md0 --add /dev/sdb2
sudo mdadm --manage /dev/md1 --add /dev/sdb3
1
2
然后需要很长一段时间,进行硬盘间的同步。在此期间禁止重启电脑,否则可能造成启动出现问题。
检查同步进度:
$cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda2[0] sdb2[1]
69018 blocks [2/1] [U_]
[=>...................] recovery = 9.9% (2423168/24418688) finish=2.8min speed=134597K/sec
md1 : active raid1 sda3[0] sdb3[1]
69018 blocks [2/1] [U_]
[=>...................] recovery = 6.4% (1572096/24418688) finish=1.9min speed=168545K/sec
unused devices:
1
2
3
4
5
6
7
8
9
10
11
待同步完成后。
再检查下,确认已安装的Raid1已正常运行。
\(sudo mdadm -D /dev/md0
\)sudo mdadm -D /dev/md1
$sudo cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
md1 : active raid1 sda3[0] sdb3[1]
24418688 blocks [2/2] [UU]
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。