2017年8月4日 星期五

Ubuntu 16.04將開機硬碟變成RAID-1

原本的系統安裝在/dev/sda上面,想要把這個系統多加入一個大小一樣的硬碟/dev/sdb,然後讓兩個硬碟變成RAID-1(Mirror)。原本的硬碟上面有三個分割區:

  • /dev/sda1:BIOS Boot Partition
  • /dev/sda2:掛載到/boot
  • /dev/sda3:掛載到/

依照下面的方式做即可達到目的:
  1. 將/dev/sda的分割方式複製到/dev/sdb上
    參考《Linux上將硬碟弄成GPT分割區》
    • sgdisk -R /dev/sdb /dev/sda
  2. 用mdadm做出RAID-1(mirror)
    參考《用mdadm做RAID-1(mirror)》
    《用mdadm做/boot要注意metadata》
    • mdadm -C /dev/md2 -l 1 --metadata=0.90 -n 2 /dev/sdb2 missing
    • mdadm -C /dev/md3 -l 1 -n 2 /dev/sdb3 missing
    • mdadm --detail --scan >> /etc/mdadm/mdadm.conf
    • mkfs.ext4 -L BOOT /dev/md2
    • mkfs.ext4 -L ROOT /dev/md3
  3. 將/dev/sda裡面的內容拷貝到用/dev/sdb製作的RAID上面
    參考《用cpio轉移資料》
    • mount /dev/md3 /mnt
    • cd / && find . -xdev | cpio -pmv /mnt
    • mount /dev/md2 /mnt/boot
    • cd /boot && find . -xdev | cpio -pmv /mnt/boot
  4. 用chroot跳到RAID上面,設定開機需要的東西
    參考《用grub讓硬碟可開機》
    《安裝GRUB到硬碟上再驗證》
    • mount --bind /proc /mnt/proc
    • mount --bind /sys /mnt/sys
    • mount --bind /dev /mnt/dev
    • chroot /mnt
    • blkid    (根據此資料修改/etc/fstab的內容)
    • update-initramfs -u
    • update-grub
    • grub-install --recheck /dev/sdb
    • dd bs=512 count=1 if=/dev/sdb 2>/dev/null | strings
  5. 用exit指令跳出chroot,重開機設定BIOS開機硬碟是/dev/sdb
  6. 重開機後,確認無誤以後,在用mdadm把/dev/sda加到RAID-1裡面
    • mdadm --add /dev/md2 /dev/sda2
    • mdadm --add /dev/md3 /dev/sda3
    • grub-install --recheck /dev/sda
      dd bs=512 count=1 if=/dev/sda 2>/dev/null | strings
  7. 再次重開機,設定BIOS從/dev/sda開機


其他參考資料

_EOF_

Postprocess upscale by: 2.5, Postprocess upscaler: R-ESRGAN 4x+

Time taken: 21.2 sec. on Nvidia MX550
A: 0.57 GB, R: 1.00 GB, Sys: 1.5/2 GB (75.3%)

Parisian luxurious interior penthouse bedroom, dark walls, wooden panels

Steps: 27, Sampler: Euler, CFG scale: 7, Seed: 3712396757, Size: 512x256, Model hash: fc2511737a, Model: chilloutmix_NiPrunedFp32Fix, Version: v1.6.1

Time taken: 2 min. 1.2 sec. on Nvidia MX550
A: 1.70 GB, R: 2.26 GB, Sys: 2.0/2 GB (100.0%)

3 則留言:

  1. 請問,若我的系統原本是單顆ubuntu 22.04 desktop,現要增加一顆容量一樣的HDD,並將原單顆HDD的開機系統,變更為具有RAID 1開機功能的系統,該如何設定?謝謝!

    回覆刪除
    回覆
    1. 上文的做法就是單顆Ubuntu,要怎樣增加一個容量一樣的HDD後,變成能開機的RAID-1喔。
      文章內的sda就是原本單顆的開機硬碟
      問張內的sdb是後來加入的要和sda搭配成RAID-1的硬碟

      刪除
    2. 謝謝您的答覆.
      安裝完Ubuntu 22.04 Desktop後,我的硬碟分割區為:
      sda1 : /boot/efi
      sda2 : /var/snap/firefox/common/host-hunspell
      /
      請問使用mdadm做RAID-1,指令如何下?
      謝謝!

      刪除