Ubuntu 14.04 Desktop的Raid1安装总结

Ubuntu 14.04 Desktop的Raid1安装总结安装基于Ubuntu14.04Desktop的Raid1。由于采用UEFI/GPT方式作为系统启动方式,在安装过程中出现了很多异常情况。本文记录安装的过程。

大家好,又见面了,我是你们的朋友全栈君。

Ubuntu 14.04 Desktop的Raid1安装总结

安装基于Ubuntu14.04 Desktop的Raid1。由于采用UEFI/GPT方式作为系统启动方式,在安装过程中出现了很多异常情况。本文记录安装的过程。

安装步骤

  1. 制作好的Ubuntu启动盘(U盘或者CD);
  2. 装有两块相同型号及容量的硬盘的台式机,台式机连接网络;
  3. 安装需要的软件(mdadm和grub-efi);
  4. 使用gparted软件进行分区,创建efi分区;
  5. 使用mdadm创建RAID分区;
  6. 运行ubiquity,进行安装;
  7. 进入已安装的系统,使能boot,并进行备份Boot至另一块硬盘;

具体过程

1. 制作启动盘

从Ubuntu官网下载镜像文件,本文以ubuntu-14.04.3-desktop-amd64为例。使用Linux下的dd命令制作镜像U盘,命令如下:

sudo dd if=./ubuntu-14.04.3-desktop-amd64.iso  of=/dev/sdb4

if:镜像文件;
of:要写入的U盘名称。

2. 启动盘启动

设置BIOS的启动方式,选择U盘或者CD启动。在出现选择方式的时候,选择“Try ubuntu without installing”

3. 安装mdadm和grub-efi

使用如下命令安装软件包:

sudo apt-get install mdadm grub-efi

4. 硬盘分区

由于EFI启动文件不能安装在RAID中,所以要为EFI先建立分区。将两个硬盘(1T硬盘)分别分为三个分区:
500MB分区,FAT32格式,Flag为Boot:用于安装EFI启动文件;
200G,Ext4格式,Flag为Raid:用于RAID1 安装系统;
750G,Ext4格式,Flag为Raid,用于RAID1数据存储。

5. 创建RAID分区

sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]2
sudo mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[ab]3

md0:表示RAID盘符数字0;
-l1:表示创建RAID1;
-n2:表示两块硬盘。

6. 启动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格式)。

7. 配置已经安装的系统

初始化相关配置,进入安装的系统,如下:

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

配置启动:

nano /etc/grub.d/10_linux
# change quick_boot and quiet_boot to 0

禁止quik_boot将避免Diskfilter writes are not supported的问题。
安装需要的软件:

apt-get install -y grub-efi-amd64
apt-get install -y mdadm

安装完之后,修改/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=""

修改后:

#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

8. 添加延时脚本

添加延时脚本是为了等待RAID设备启动就绪。没有延时,可能由于RAID没有启动完成,造成一些问题。为了避免这些问题,添加一定的延时,保证RAID启动。
创建/usr/share/initramfs-tools/scripts/local-premount/sleepAwhile,写入一下代码:

#!/bin/sh
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"

使能脚本并安装到系统中:

chmod a+x /usr/share/initramfs-tools/scripts/local-premount/sleepAwhile
update-grub
update-initramfs -u

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

以上操作,将启动引导装在/boot/efi/EFI/Ubuntu中。

10. 使能从另一块硬盘启动

由于EFI并不能安装在RAID中,以上的操作只能确保系统从第一块硬盘启动,而不能从第二块硬盘启动。如果第一块硬盘出现问题,则系统将不能启动。以下过程,将使能从第二块硬盘启动。当第一块硬盘异常的时候,系统可以从第二块硬盘正常启动。
将/sda1的内容,克隆到/sdb1中,如下所示:

dd if=/dev/sda1 of=/dev/sdb1

最后,将/sdb1加入到启动目录中,如下:

efibootmgr -c -g -d /dev/sdb -p 1 -L "Ubuntu #2" -l '\EFI\Ubuntu\grubx64.efi'

至此,安装的系统将可以分别从/sda和/sdb硬盘上启动。

11. 重启

现在,可以准备重启,如下:

exit //退出chroot
exit //退出sudo -s
sudo reboot //复位

12. 测试系统启动

将卸下来一块硬盘,上电启动,观察系统启动情况。同上,测试另一块硬盘。

13. 恢复

由于(12)步骤的测试,导致Raid1存在一个硬盘处于不工作状态。当将两块硬盘都连接到电脑上的时候,系统将随机选择一块硬盘启动。此时,我们需要将两块硬盘都添加在Raid1中,确保有两个硬盘在同时工作。
首先,查询当前/dev/md0,/dev/md1的状态:

sudo mdadm -D /dev/md0 /dev/md1
sudo cat /proc/mdstat

根据检查到的信息,提示只有一个设备处于active sync状态,然后将缺失的硬盘添加到raid1的md0,md1中,如下:

sudo mdadm --manage /dev/md0 --add /dev/sdb2
sudo mdadm --manage /dev/md1 --add /dev/sdb3

然后需要很长一段时间,进行硬盘间的同步。在此期间禁止重启电脑,否则可能造成启动出现问题。
检查同步进度:

$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: <none>

待同步完成后。
再检查下,确认已安装的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]

更多内容

  1. How to replace a failed harddisk in Linux software RAID? 这个系列可以仔细看下
  2. How to install Ubuntu 14.04 64-bit with a dual-boot RAID 1 partition on an UEFI/GPT system?
  3. How to Install Ubuntu 14.04 with RAID 1 using desktop installer?
  4. How To Set Up Software RAID1 On A Running System ?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159550.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AWStats日志分析

    AWStats日志分析AWStats日志分析系统介绍1.AWStats日志分析系统(1)Peri语言开发的一款开源日志分析系统(2)可用来分析Apache、Samba、Vsftpd、IIS等服务器的访问日志(3)信息结合crond等计划任务服务,可对日志内容定期进行分析部署AWStats日志分析系统1.安装AWStats软件包2.为要统计的站点建立配置文件3.修改站点统计配置文件…

    2022年7月16日
    24
  • mysql和oracle的区别有什么

    mysql和oracle的区别有什么1、mysql与oracle都是关系型数据库,应用于各种平台。mysql开源免费的,而oracle则是收费的,并且价格非常高。2、管理工具上mysql的管理工具较少,在Linux下的管理工具的安装有时需要安装额外的包(phpmyadmin,etc),有一定复杂性。oracle有多重成熟命令行、图形界面、web管理工具,还有很多第三方的管理工具,管理极其方便高效。oracle支持大并发,大访问量,是OLTP最好的工具。3、数据库的层次结构上mysql:默认用户是root,用户下可以创建好多数据库,

    2025年11月14日
    5
  • java中保留两位小数的输出

    java中保留两位小数的输出例如平方和与倒数和,最后输出要求保留两位小数,下面这个程序的注意点已用红色字体标记importjava.text.DecimalFormat;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){//TODOAuto-generatedmet

    2022年7月8日
    31
  • 学习率衰减之余弦退火(CosineAnnealing)

    学习率衰减之余弦退火(CosineAnnealing)1引言当我们使用梯度下降算法来优化目标函数的时候,当越来越接近Loss值的全局最小值时,学习率应该变得更小来使得模型尽可能接近这一点,而余弦退火(Cosineannealing)可以通过余弦函数来降低学习率。余弦函数中随着x的增加余弦值首先缓慢下降,然后加速下降,再次缓慢下降。这种下降模式能和学习率配合,以一种十分有效的计算方式来产生很好的效果。在论文StochasticGradientDescentwithWarmRestarts中介绍主要介绍了带重启的随机梯度下降算法(SGDR),其

    2022年5月1日
    61
  • xshell如何激活_xftp6使用教程

    xshell如何激活_xftp6使用教程市面上连接服务器的客户端有很多,有免费的,也有收费的。有国产的也有非国产的。每个人使用的都不一样。很多也使用过,比如putty免费的,但是在我使用看来,使用一会就卡顿住了,最后就是需要重新连接,怎么用都不是很方便,最后还是的使用回来xshell和xftp。下面就来演示下如何安装xshell和xftp。首先是下载xshell和xftp的软件安装包。其实下载这个安装包是非常简单的,但是不简单的是如何下载一个真的能用的安装包。其次就是安装了。安装其实也是非常的简单的。下一步,下一步就可以完成.

    2025年10月9日
    6
  • 在定义adt时_ScriptableObject

    在定义adt时_ScriptableObjectADT操作分类Creators构造器:利用其他的数据类型对象产生一个新的对象可能实现为构造函数或静态工厂方法Producers生产器:用已有该类型对象产生新对象如string.concat()(连接两个字符串,产生一个新的字符串)Observers观察器如list.size()返回int(不同于原类型)Mutators变值器(改变对象属性的方法)通常范围void,如果返回void,则必然意味着它改变了某些对象的内部状态,也可能范围非空类型(如容器类的put、add方法)…

    2025年9月4日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号