Ubuntu 22.04 安装到RAID1

这篇具有很好参考价值的文章主要介绍了Ubuntu 22.04 安装到RAID1。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

弄一台Ubuntu内网服务器,要跑一些服务,为了可用性,准备组RAID1。

安装

  • 官网下载镜像,然后使用rufus制作启动盘。这里有个坑,不能使用rufus4.0,否则会报错。22.04需要使用rufus-3.22
  • 设置u盘启动,启动主机进入安装程序。一路默认直到Storage Configuration。
  • 我的主机只有两块硬盘,因此其中一个硬盘上需要有启动分区,这样也能组RAID 1。但是如果有启动分区的硬盘坏了,就不能启动了。所以目前的方案是两块硬盘都划分启动分区,其中一个是备用分区。另外我还划分了16G的交换区。将两块硬盘剩余空间划分出来,注意不要选择分区类型。
  • 然后创建RAID1,选择两块硬盘的第三分区。
  • 继续装系统。
    安装完成后,可以看一下RAID的情况:
$ mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Tue May 30 08:58:17 2023
        Raid Level : raid1
        Array Size : 958801920 (914.38 GiB 981.81 GB)
     Used Dev Size : 958801920 (914.38 GiB 981.81 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Tue May 30 09:37:51 2023
             State : clean, resyncing
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

     Resync Status : 19% complete

              Name : ubuntu-server:0
              UUID : e4d05f4d:775b614e:7bcb35f0:20570b97
            Events : 1672

    Number   Major   Minor   RaidDevice State
       0       8       19        0      active sync   /dev/sdb3
       1       8        3        1      active sync   /dev/sda3

RAID1成功,使用了sdb3和sda3

同步启动分区

以上安装完成之后,虽然两块硬盘都有启动分区,但只有一个启动分区是实际有作用的。我们需要将实际使用的启动分区的内容复制到另一个硬盘的备用分区上。

  • 看一下硬盘分区情况
$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda           8:0    0 931.5G  0 disk
├─sda1        8:1    0     1G  0 part
├─sda2        8:2    0    16G  0 part  [SWAP]
└─sda3        8:3    0 914.5G  0 part
  └─md0       9:0    0 914.4G  0 raid1
    └─md0p1 259:0    0 914.4G  0 part  /
sdb           8:16   0 931.5G  0 disk
├─sdb1        8:17   0     1G  0 part  /boot/efi
├─sdb2        8:18   0    16G  0 part  [SWAP]
└─sdb3        8:19   0 914.5G  0 part
  └─md0       9:0    0 914.4G  0 raid1
    └─md0p1 259:0    0 914.4G  0 part  /

可以看到,我有两块硬盘sda和sdb。每块硬盘上都有3个分区1,2,3。
sda1和sdb1就是启动分区,大小为1G。
sda2和sdb2是SWAP,大小为16G(和内存一样大)
sda3和sdb3就是组RAID1的分区了,他们组成了md0的p1分区。

  • 确认一下当前boot分区
$ mount | grep boot
/dev/sdb1 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

没问题,和上面一样的。目前使用的是sdb1作为启动分区。

  • 将sdb1复制到sda1
$ dd if=/dev/sdb1 of=/dev/sda1

这样sdb1就和sda1的内容完全一样了。注意这个命令比较危险,所以一定要经过上面的步骤确认,哪个是正在使用的启动分区,哪个是之前创建的备用启动分区。如果弄反了就坏了。
经过这个步骤,我们两个硬盘上都有有效的ESP了,都可以用来启动。但是我们还是要检查一下引导表。

  • 首先显示所有分区的UUID,方便我们后面查看。
$ ls -la /dev/disk/by-partuuid/
total 0
drwxr-xr-x 2 root root 180 May 30 09:48 .
drwxr-xr-x 7 root root 140 May 30 09:24 ..
lrwxrwxrwx 1 root root  10 May 30 09:25 07d56e25-b13e-4864-bb59-493dc97243b8 -> ../../sdb3
lrwxrwxrwx 1 root root  10 May 30 09:25 19c9c16e-b2c0-4c89-9e81-b9dfb7e47f7f -> ../../sda3
lrwxrwxrwx 1 root root  11 May 30 09:25 2223f78b-ec95-469a-bd7d-4bc3c9b2c54c -> ../../md0p1
lrwxrwxrwx 1 root root  10 May 30 09:25 26901ebe-32cf-4562-b990-1fbf6cbd018a -> ../../sda2
lrwxrwxrwx 1 root root  10 May 30 09:25 35d376bb-eb7f-4052-b4eb-f1487c3d1be1 -> ../../sdb1
lrwxrwxrwx 1 root root  10 May 30 09:25 5e434415-9273-4755-9a12-44a510007c03 -> ../../sdb2
lrwxrwxrwx 1 root root  10 May 30 09:48 8af85ef0-7207-4b19-aa81-cc62320db63a -> ../../sda1
  • 使用efibootmgr查看引导信息
 efibootmgr -v
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0004,0001
Boot0000* ubuntu        HD(1,GPT,35d376bb-eb7f-4052-b4eb-f1487c3d1be1,0x800,0x200000)/File(\EFI\UBUNTU\SHIMX64.EFI)
Boot0001* Hard Drive    BBS(HD,,0x0)..GO..NO........o.W.D.C. .W.D.1.0.J.P.L.X.-.0.0.M.B.P.T.0....................A...........................>..Gd-.;.A..MQ..L. . . . . . .R.J.0.1.0.0.M.4.J.3.Y.L.F.A........BO..NO........o.H.G.S.T. .H.T.S.7.2.1.0.1.0.A.9.E.6.3.0....................A...........................>..Gd-.;.A..MQ..L. . . . . . .R.J.0.1.0.0.3.D.J.0.H.0.E.Z........BO
Boot0004* ubuntu        HD(1,GPT,8af85ef0-7207-4b19-aa81-cc62320db63a,0x800,0x200000)/File(\EFI\UBUNTU\SHIMX64.EFI)

看到了吗,这儿有两个ubuntu条目,对照一下之前查看的UUID,确认分别是sda1和sdb1。如果缺少条目,需要添加该条目。
比如sda1(8af85ef0开头的)不存在,则执行:

$ sudo efibootmgr --create --disk /dev/sda --part 1 --label "ubuntu" --loader "\EFI\ubuntu\shimx64.efi"

大功告成,两个硬盘可以随便拆下一个,另外一个都可以正常启动,且正常使用了。

更换新硬盘

如果硬盘坏了一个,需要更换新硬盘。操作如下:

  • 首先,找到新的硬盘
$ sudo fdisk -l

假设新硬盘为/dev/sdb,而没有坏的那块是 /dev/sda。那么我们需要将分区表从/dev/sda复制到/dev/sdb。

  • 为了方便,设置两个变量:
$ source=/dev/sda
$ dest=/dev/sdb
  • 安全起见,备份一下分区表
$ sudo sgdisk --backup=backup-$(basename $source).sgdisk $source
$ sudo sgdisk --backup=backup-$(basename $dest).sgdisk $dest
  • 创建源分区表的副本,并且为新驱动器生成新的UUID:
$ sudo sgdisk --replicate=$dest $source
$ sudo sgdisk -G $dest
  • 开始同步raid, 将下面的X替换成正确的分区(我这儿是3,见上面的分区情况)
$ sudo mdadm --manage /dev/md0 -a $(echo "$dest"X)
  • 现在开始复制ESP(用正确的分区替换X,我这儿是1)
$ sudo dd if=$(echo "$source"X) of=$(echo "$dest"X)
  • 列出驱动器的UUID:
$ ls -la /dev/disk/by-partuuid/
  • 显示引导记录:
$ efibootmgr -v

记下引导顺序,以防你想修改它。

  • 修复引导记录:

如果任意一个ubuntu条目指向的UUID不存在(属于坏掉的硬盘),可以删除这个条目(XXXX代表UUID):

$ sudo efibootmgr -B -b XXXX

同样,如果缺少条目,可以手动添加:文章来源地址https://www.toymoban.com/news/detail-642615.html

$ sudo efibootmgr --create --disk /dev/sdX --part 1 --label "ubuntu" --loader "\EFI\ubuntu\shimx64.efi"
  • 最后,验证一下结果是否正确:
$ efibootmgr -v

到了这里,关于Ubuntu 22.04 安装到RAID1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu 22.04 图文安装

    选择第一个选项开始安装 选择English语言 选择中间选项不更新安装,这是因为后续通过更换源之后再更新会比较快 键盘设计继续选择英文,可以通过语言选择那里更换成中文,只是我觉得中文字符识别会有一定的麻烦所以这里继续选择了英文 继续默认选择下一步 配置网络,

    2024年02月22日
    浏览(53)
  • Ubuntu22.04安装ROS

    在安装ROS之前,需要先安装Ubuntu22.04操作系统。您可以从Ubuntu官网下载Ubuntu22.04的最新版本镜像文件,并创建一个可启动的USB。您可以参考以下步骤: 在安装ROS之前,需要先安装Ubuntu22.04操作系统。您可以从Ubuntu官网下载Ubuntu22.04的最新版本镜像文件,并创建一个可启动的USB。

    2024年02月10日
    浏览(53)
  • Ubuntu22.04 安装Anaconda

    (1)下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=MO=D (2)选择适合您操作系统的版本进行下载 (3)下载方式有两种: 方式一,使用wget下载(注:先下载wget): 方式二:在本机下载后,通过xftp等文件上传工具,将工具包上传到服务器 (4)使用 uname -m 可以查询

    2024年02月15日
    浏览(50)
  • Ubuntu22.04安装docker

    设置存储库 1.更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库: apt``apt 2.添加 Docker 的官方 GPG 密钥: 3.使用以下命令设置存储库: 安装 Docker 引擎 1.更新包索引: apt 尝试授予 Docker 的读取权限 更新包索引之前的公钥文件: 2.安装 Docker Engine、containerd 和 Docker C

    2024年02月03日
    浏览(51)
  • ubuntu22.04安装过程记录

    【双系统】如何安装ubuntu22.04系统_ubuntu安装教程-CSDN博客 打开清华源官网,搜索对应系统版本的镜像源码 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ 原文件备份 编辑源文件  将原来内容删除,添加清华源源码 更新镜像源  Ubuntu22.04 安装显卡驱动_ubuntu安装nvidia显卡驱动_Chenxu_Wen的

    2024年02月04日
    浏览(35)
  • ubuntu 22.04 -- cmake安装

    官网下载:下载链接:https://cmake.org/download/ 也可以使用命令行下载 2.1 在系统环境中指定cmake的位置(可选) Could not find OpenSSL 错误描述 解决方案 缺少 openssl 的编译依赖,安装即可 sudo apt-get install libssl-dev 其他解决方案参考资料:安装cmake,没有sudo权限,cannot find openssl;

    2024年02月10日
    浏览(35)
  • Ubuntu 22.04 安装docker

    如果之前有安装过旧版本,则通过此命令删除旧版本 Windows 10 子系统Ubuntu 22.04 按以上步骤安装完docker后,启动 docker 可能会报错 以上可以通过将 iptables 切回 iptables-legacy

    2024年02月14日
    浏览(42)
  • 【Ubuntu 22.04安装CUDA】

    步骤1:更新系统 在终端中运行以下命令,确保系统已更新到最新版本: 步骤2:安装NVIDIA显卡驱动* 要使用CUDA,您需要安装NVIDIA的专有GPU驱动。运行以下命令来安装: 在安装驱动程序后,重启计算机以应用更改: 如何确定安装驱动版本 步骤3:添加NVIDIA CUDA存储库 在终端中

    2024年02月13日
    浏览(49)
  • ubuntu 22.04安装PostgreSQL

    关系数据库管理系统是许多网站和应用程序的关键组件。 它们提供了一种结构化的方式来存储、组织和访问信息。 PostgreSQL 或 Postgres 是一种关系数据库管理系统,它提供 SQL 查询语言的实现。 它符合标准并具有许多高级功能,例如可靠的事务处理和没有读锁的并发性。 本文

    2024年02月09日
    浏览(35)
  • 电脑安装ubuntu22.04系统

    关于我 🏠 工作 | 杭州 ⭐ framework开发工程师(嵌入式软件开发工程师) ✈️公众号 | 好学程序员 ✈️微信 | l15228913797 🚀 邮箱 | 394651421@qq.com 安装系统就是从U盘启动盘去启动,利用U盘中的镜像来为电脑安装系统 不同电脑从U盘启动的方式可能不一样,一般也就两种方式 方

    2024年04月22日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包