惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
月光博客
月光博客
AI
AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CXSECURITY Database RSS Feed - CXSecurity.com
WordPress大学
WordPress大学
GbyAI
GbyAI
L
Lohrmann on Cybersecurity
O
OpenAI News
Schneier on Security
Schneier on Security
P
Palo Alto Networks Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
W
WeLiveSecurity
L
LINUX DO - 最新话题
人人都是产品经理
人人都是产品经理
S
Security Affairs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
Arctic Wolf
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
TaoSecurity Blog
TaoSecurity Blog
C
Check Point Blog
Scott Helme
Scott Helme
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Vercel News
Vercel News
The Hacker News
The Hacker News
Y
Y Combinator Blog
Latest news
Latest news
SecWiki News
SecWiki News
Hugging Face - Blog
Hugging Face - Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Webroot Blog
Webroot Blog
Google DeepMind News
Google DeepMind News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
Cisco Blogs
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题

博客园 - zhaocundang

MLX90640迷你热像仪管道测温电路维修酒店巡检科研实验数据采集 树莓派4b 安装ubuntu18.04 server glibc2.27 打包分发qt软件 树莓派4b qt打包软件 树莓派4b ubuntu24.04安装qt配置软件源 海曼HTPA80X64红外热成像 测温采集记录仪 多点实时温度分析 海曼HTPA32X32红外热成像 测温采集记录仪 多点实时温度分析 在Ubuntu上的QT创建工程并打包项目 MLX90640热像仪测温采集 科研实验 非接触测温 FLIR LEPTON3.5 热像仪wifi 科研实验测温采集仪 STM32H750 DMA 串口2 D CACHE缓存问题 热像仪报警器MLX90640 qt c语言双三次线性插值 qt RGB565 转rgb Qt MacOS 打包dmg MLX90640 热成像 热像仪 OV2640 双光融合 seafile配置 lvgl qt RGB 转RGB565 生成提供单片机LCD显示 STM32F411CE VCAP 电容不稳定导致死机
安装基于Ubuntu20.04 Desktop的Raid1。
zhaocundang · 2023-05-12 · via 博客园 - zhaocundang

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

安装步骤
制作好的Ubuntu启动盘(U盘或者CD);
装有两块相同型号及容量的硬盘的台式机,台式机连接网络;
安装需要的软件(mdadm和grub-efi);
使用gparted软件进行分区,创建efi分区;
使用mdadm创建RAID分区;
运行ubiquity,进行安装;
进入已安装的系统,使能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
1
if:镜像文件;
of:要写入的U盘名称。

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

  2. 安装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数据存储。

  1. 创建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:表示两块硬盘。

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

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

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

change quick_boot and quiet_boot to 0

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_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX=""
1
2
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"
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中。

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

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硬盘上启动。

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

exit //退出chroot
exit //退出sudo -s
sudo reboot //复位
1
2
3
12. 测试系统启动
将卸下来一块硬盘,上电启动,观察系统启动情况。同上,测试另一块硬盘。

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

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]