Với một số trợ giúp từ Cách cài đặt máy chủ Ubuntu với UEFI và RAID1 + LVM , RAID được thiết lập trong Ubuntu 18.04 và hỗ trợ RAID trong trình cài đặt Máy tính để bàn Ubuntu 18.04? và Làm thế nào để thoát khỏi "quét hệ thống tập tin btrfs" khi khởi động? , Tôi đã quản lý để kết hợp một HOWTO hoạt động chỉ bằng các lệnh linux.
Nói ngắn gọn
- Tải về trình cài đặt máy chủ thay thế.
- Cài đặt với phân vùng thủ công, EFI + RAID và LVM trên phân vùng RAID.
- Sao chép phân vùng EFI từ phân vùng đã cài đặt sang ổ đĩa khác.
- Cài đặt phân vùng EFI thứ hai vào chuỗi khởi động UEFI.
- Để tránh phải chờ đợi lâu trong quá trình khởi động trong trường hợp ổ đĩa bị hỏng, hãy xóa các
btrfs
tập lệnh khởi động.
Chi tiết
1. Tải xuống trình cài đặt
2. Cài đặt với phân vùng thủ công
- Trong quá trình cài đặt, tại
Partition disks
bước, chọn Manual
.
- Nếu các đĩa chứa bất kỳ phân vùng, loại bỏ chúng.
- Nếu bất kỳ khối lượng logic nào có mặt trên ổ đĩa của bạn, chọn
Configure the Logical Volume Manager
.
- Chọn
Delete logical volume
cho đến khi tất cả các khối lượng đã bị xóa.
- Chọn
Delete volume group
cho đến khi tất cả các nhóm khối lượng đã bị xóa.
- Nếu có bất kỳ thiết bị RAID nào, hãy chọn
Configure software RAID
.
- Chọn
Delete MD device
cho đến khi tất cả các thiết bị MD đã bị xóa.
- Xóa mọi phân vùng trên các ổ đĩa vật lý bằng cách chọn chúng và chọn
Delete the partition
.
- Tạo phân vùng vật lý
- Trên mỗi ổ đĩa, tạo phân vùng 512 MB (tôi đã thấy những người khác sử dụng 128 MB) ở đầu đĩa, Sử dụng như :
EFI System Partition
.
- Trên mỗi ổ đĩa, tạo phân vùng thứ hai với kích thước 'tối đa', Sử dụng làm :
Physical Volume for RAID
.
- Thiết lập RAID
- Chọn
Configure software RAID
.
- Chọn
Create MD device
, nhập RAID1
, 2 đĩa hoạt động, 0 đĩa dự phòng và chọn /dev/sda2
và /dev/sdb2
thiết bị.
- Thiết lập LVM
- Chọn
Configure the Logical Volume Manager
.
- Tạo nhóm âm lượng
vg
trên /dev/md0
thiết bị.
- Tạo khối lượng logic, ví dụ:
swap
lúc 16 giờ
root
ở 35G
tmp
lúc 10 giờ
var
ở mức 5G
home
ở mức 200G
- Thiết lập cách sử dụng các phân vùng hợp lý
- Đối với
swap
phân vùng, chọn Use as: swap
.
- Đối với các định dạng khác thì chọn
Use as: ext4
với thích hợp gắn kết điểm ( /
, /tmp
, /var
, /home
, tương ứng).
- Chọn
Finish partitioning and write changes to disk
.
- Cho phép chương trình cài đặt kết thúc và khởi động lại.
Nếu bạn đang cài đặt lại trên một ổ đĩa trước đó có cấu hình RAID, bước tạo RAID ở trên có thể thất bại và bạn không bao giờ có được một md
thiết bị. Trong trường hợp đó, bạn có thể phải tạo một thanh USB Ubuntu Live, khởi động vào đó, chạy gparted
để xóa tất cả các bảng phân vùng của bạn, trước khi bạn khởi động lại HOWTO này.
3. Kiểm tra hệ thống
4. Phân vùng EFI
Đã khởi động EFI được tải /dev/sda1
. Vì phân vùng đó không được nhân đôi qua hệ thống RAID, chúng tôi cần sao chép nó.
sudo dd if=/dev/sda1 of=/dev/sdb1
5. Chèn ổ đĩa thứ hai vào chuỗi khởi động
Bước này có thể không cần thiết, vì nếu một trong hai ổ đĩa bị chết, hệ thống sẽ khởi động từ các phân vùng EFI (giống hệt). Tuy nhiên, có vẻ thận trọng để đảm bảo rằng chúng tôi có thể khởi động từ một trong hai đĩa.
- Chạy
efibootmgr -v
và chú ý tên tập tin cho ubuntu
mục khởi động. Trên cài đặt của tôi, nó đã được \EFI\ubuntu\shimx64.efi
.
- Chạy đi
sudo efibootmgr -c -d /dev/sdb -p 1 -L "ubuntu2" -l \EFI\ubuntu\shimx64.efi
. Tùy thuộc vào vỏ của bạn, bạn có thể phải thoát khỏi dấu gạch chéo ngược.
- Xác minh
efibootmgr -v
rằng bạn có cùng tên tệp cho các mục ubuntu
và ubuntu2
khởi động và chúng là hai tên đầu tiên trong thứ tự khởi động.
- Bây giờ hệ thống sẽ khởi động ngay cả khi một trong hai ổ đĩa bị lỗi!
7. Chờ đã
Nếu bạn muốn thử gỡ bỏ hoặc vô hiệu hóa bất kỳ ổ đĩa nào để kiểm tra cài đặt của mình, trước tiên bạn phải đợi cho đến khi quá trình đồng bộ hóa RAID hoàn tất! Theo dõi tiến trình với cat /proc/mdstat
Tuy nhiên, bạn có thể thực hiện bước 8 bên dưới trong khi chờ đợi.
8. Xóa BTRFS
Nếu một ổ đĩa bị lỗi (sau khi đồng bộ hóa hoàn tất), hệ thống sẽ vẫn khởi động. Tuy nhiên, trình tự khởi động sẽ dành nhiều thời gian để tìm kiếm các hệ thống tệp btrfs. Để loại bỏ sự chờ đợi không cần thiết đó, hãy chạy
sudo apt-get purge btrfs-progs
Điều này sẽ loại bỏ btrfs-progs
, btrfs-tools
và ubuntu-server
. Gói cuối cùng chỉ là gói meta, vì vậy nếu không có thêm gói nào được liệt kê để xóa, bạn sẽ ổn thôi.
9. Cài đặt phiên bản máy tính để bàn
Chạy sudo apt install ubuntu-desktop
để cài đặt phiên bản máy tính để bàn. Sau đó, việc đồng bộ hóa có thể được thực hiện và hệ thống của bạn được định cấu hình và sẽ tồn tại khi xảy ra lỗi đĩa!
10. Cập nhật phân vùng EFI sau khi cập nhật grub-efi-amd64
Khi gói grub-efi-amd64
được cập nhật, các tệp trên phân vùng EFI (được gắn tại /boot/efi
) có thể thay đổi. Trong trường hợp đó, bản cập nhật phải được sao chép thủ công vào phân vùng gương. May mắn thay, bạn sẽ nhận được cảnh báo từ trình quản lý cập nhật grub-efi-amd64
sắp được cập nhật, do đó bạn không phải kiểm tra sau mỗi lần cập nhật.
10.1 Tìm nguồn bản sao, cách nhanh chóng
Nếu bạn chưa khởi động lại sau khi cập nhật, hãy sử dụng
mount | grep boot
để tìm hiểu phân vùng EFI được gắn kết. Phân vùng đó, thông thường /dev/sdb1
, nên được sử dụng làm nguồn nhân bản.
10.2 Tìm ra nguồn nhân bản, cách hoang tưởng
Tạo điểm gắn kết và gắn kết cả hai phân vùng:
sudo mkdir /tmp/sda1 /tmp/sdb1
sudo mount /dev/sda1 /tmp/sda1
sudo mount /dev/sdb1 /tmp/sdb1
Tìm dấu thời gian của tệp mới nhất trong mỗi cây
sudo find /tmp/sda1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sda1
sudo find /tmp/sdb1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sdb1
So sánh dấu thời gian
cat /tmp/newest.sd* | sort | tail -n 1 | perl -ne 'm,/tmp/(sd[ab]1)/, && print "/dev/$1 is newest.\n"'
Nên in /dev/sdb1 is newest
(rất có thể) hoặc /dev/sda1 is newest
. Phân vùng đó nên được sử dụng làm nguồn nhân bản.
Ngắt kết nối các phân vùng trước khi nhân bản để tránh sự không nhất quán của bộ đệm / phân vùng.
sudo umount /tmp/sda1 /tmp/sdb1
10.3 Bản sao
Nếu /dev/sdb1
là nguồn nhân bản:
sudo dd if=/dev/sdb1 of=/dev/sda1
Nếu /dev/sda1
là nguồn nhân bản:
sudo dd if=/dev/sda1 of=/dev/sdb1
Làm xong!
11. Gotchas máy ảo
Nếu trước tiên bạn muốn thử điều này trong một máy ảo, có một số lưu ý: Rõ ràng, NVRAM chứa thông tin UEFI được ghi nhớ giữa các lần khởi động lại, nhưng không phải giữa các chu kỳ khởi động lại. Trong trường hợp đó, bạn có thể kết thúc tại bảng điều khiển UEFI Shell. Các lệnh sau sẽ khởi động bạn vào máy của bạn từ /dev/sda1
(sử dụng FS1:
cho /dev/sdb1
):
FS0:
\EFI\ubuntu\grubx64.efi
Giải pháp đầu tiên trong câu trả lời hàng đầu về khởi động UEFI trong hộp ảo - Ubuntu 12.04 cũng có thể hữu ích.