Przy pomocy pomocy Jak zainstalować serwer Ubuntu z UEFI i RAID1 + LVM , konfiguracja RAID w Ubuntu 18.04 i obsługa RAID w instalatorze Ubuntu 18.04 Desktop? i Jak pozbyć się „skanowania w poszukiwaniu systemów plików btrfs” podczas uruchamiania? , Udało mi się zebrać działający HOWTO, używając tylko poleceń linux.
W skrócie
- Pobierz alternatywny instalator serwera.
- Zainstaluj z ręcznym partycjonowaniem, EFI + RAID i LVM na partycji RAID.
- Sklonuj partycję EFI z zainstalowanej partycji na inny dysk.
- Zainstaluj drugą partycję EFI w łańcuchu rozruchowym UEFI.
- Aby uniknąć długiego oczekiwania podczas rozruchu na wypadek awarii napędu, usuń
btrfs
skrypty rozruchowe.
Szczegółowo
1. Pobierz instalator
2. Zainstaluj z ręcznym partycjonowaniem
- Podczas instalacji
Partition disks
wybierz w kroku Manual
.
- Jeśli dyski zawierają jakieś partycje, usuń je.
- Jeśli na dyskach znajdują się woluminy logiczne, wybierz
Configure the Logical Volume Manager
.
- Wybierz,
Delete logical volume
dopóki wszystkie woluminy nie zostaną usunięte.
- Wybierz,
Delete volume group
dopóki wszystkie grupy woluminów nie zostaną usunięte.
- Jeśli obecne jest jakieś urządzenie RAID, wybierz
Configure software RAID
.
- Wybierz,
Delete MD device
dopóki wszystkie urządzenia MD nie zostaną usunięte.
- Usuń każdą partycję na dyskach fizycznych, wybierając je i wybierając
Delete the partition
.
- Utwórz partycje fizyczne
- Na każdym dysku, utworzyć partycję 512MB (widziałem inni korzystają z 128MB) na początku dysku, wykorzystać jako:
EFI System Partition
.
- Na każdym dysku utworzyć drugą partycję „max” wielkości wykorzystać jako:
Physical Volume for RAID
.
- Skonfiguruj RAID
- Wybierz
Configure software RAID
.
- Wybierz
Create MD device
, wpisz RAID1
, 2 aktywne dyski, 0 zapasowych dysków i wybierz urządzenia /dev/sda2
i /dev/sdb2
.
- Skonfiguruj LVM
- Wybierz
Configure the Logical Volume Manager
.
- Utwórz grupę woluminów
vg
na /dev/md0
urządzeniu.
- Utwórz woluminy logiczne, np
swap
przy 16G
root
przy 35G
tmp
przy 10G
var
przy 5G
home
przy 200G
- Skonfiguruj sposób korzystania z partycji logicznych
- Dla
swap
partycji wybierz Use as: swap
.
- Dla innych partycji, wybierz
Use as: ext4
z punktami właściwa mount ( /
, /tmp
, /var
, /home
, odpowiednio).
- Wybierz
Finish partitioning and write changes to disk
.
- Poczekaj, aż program instalacyjny zakończy się i uruchom ponownie.
Jeśli instalujesz ponownie na dysku, który wcześniej miał konfigurację RAID, powyższy krok tworzenia RAID może się nie powieść i nigdy nie otrzymasz md
urządzenia. W takim przypadku może być konieczne utworzenie pamięci USB Ubuntu Live, uruchomienie systemu, uruchomienie, gparted
aby wyczyścić wszystkie tabele partycji, przed ponownym uruchomieniem tego HOWTO.
3. Sprawdź system
Sprawdź, która partycja EFI została zamontowana. Najprawdopodobniej /dev/sda1
.
zamontować | grep boot
Sprawdź status RAID. Najprawdopodobniej synchronizuje się.
cat / proc / mdstat
4. Klonuj partycję EFI
Załadowany EFI powinien był zostać zainstalowany /dev/sda1
. Ponieważ ta partycja nie jest dublowana przez system RAID, musimy ją sklonować.
sudo dd if=/dev/sda1 of=/dev/sdb1
5. Włóż drugi dysk do łańcucha rozruchowego
Ten krok może nie być konieczny, ponieważ jeśli jeden z dysków umrze, system powinien uruchomić się z (identycznych) partycji EFI. Wydaje się jednak rozsądne, aby zapewnić możliwość rozruchu z dowolnego dysku.
- Uruchom
efibootmgr -v
i zauważ nazwę pliku dla pozycji ubuntu
rozruchu. W mojej instalacji tak było \EFI\ubuntu\shimx64.efi
.
- Uruchom
sudo efibootmgr -c -d /dev/sdb -p 1 -L "ubuntu2" -l \EFI\ubuntu\shimx64.efi
. W zależności od powłoki może być konieczne uniknięcie ukośników odwrotnych.
- Sprawdź
efibootmgr -v
, czy masz taką samą nazwę pliku dla elementów ubuntu
i ubuntu2
boot i czy są to pierwsze dwa w kolejności rozruchu.
- Teraz system powinien się uruchomić, nawet jeśli jeden z dysków ulegnie awarii!
7. Poczekaj
Jeśli chcesz spróbować fizycznie usunąć lub wyłączyć dowolny dysk w celu przetestowania instalacji, musisz najpierw poczekać, aż zakończy się synchronizacja RAID! Monitoruj postęp za pomocą cat /proc/mdstat
Możesz jednak wykonać krok 8 poniżej podczas oczekiwania.
8. Usuń BTRFS
Jeśli jeden dysk ulegnie awarii (po zakończeniu synchronizacji), system nadal się uruchomi. Jednak sekwencja rozruchowa poświęci dużo czasu na szukanie systemów plików btrfs. Aby usunąć niepotrzebne oczekiwanie, uruchom
sudo apt-get purge btrfs-progs
To powinno usunąć btrfs-progs
, btrfs-tools
i ubuntu-server
. Ostatni pakiet to tylko pakiet meta, więc jeśli nie ma już więcej pakietów do usunięcia, powinieneś być w porządku.
9. Zainstaluj wersję na komputer
Uruchom, sudo apt install ubuntu-desktop
aby zainstalować wersję na komputer. Następnie synchronizacja jest prawdopodobnie zakończona, a system jest skonfigurowany i powinien przetrwać awarię dysku!
10. Zaktualizuj partycję EFI po aktualizacji grub-efi-amd64
Gdy pakiet grub-efi-amd64
zostanie zaktualizowany, pliki na partycji EFI (zamontowane w /boot/efi
) mogą ulec zmianie. W takim przypadku aktualizację należy ręcznie sklonować na partycję lustrzaną. Na szczęście powinieneś otrzymać ostrzeżenie od menedżera aktualizacji, który grub-efi-amd64
ma zostać zaktualizowany, więc nie musisz sprawdzać po każdej aktualizacji.
10.1 Szybko znajdź źródło klonowania
Jeśli nie uruchomiłeś się ponownie po aktualizacji, użyj
mount | grep boot
aby dowiedzieć się, która partycja EFI jest zamontowana. Ta partycja zwykle /dev/sdb1
powinna być używana jako źródło klonowania.
10.2 Znajdź źródło klonowania, sposób paranoiczny
Utwórz punkty montowania i zamontuj obie partycje:
sudo mkdir /tmp/sda1 /tmp/sdb1
sudo mount /dev/sda1 /tmp/sda1
sudo mount /dev/sdb1 /tmp/sdb1
Znajdź znacznik czasu najnowszego pliku w każdym drzewie
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
Porównaj znaczniki czasu
cat /tmp/newest.sd* | sort | tail -n 1 | perl -ne 'm,/tmp/(sd[ab]1)/, && print "/dev/$1 is newest.\n"'
Powinien wydrukować /dev/sdb1 is newest
(najprawdopodobniej) lub /dev/sda1 is newest
. Ta partycja powinna być używana jako źródło klonowania.
Odmontuj partycje przed klonowaniem, aby uniknąć niespójności pamięci podręcznej / partycji.
sudo umount /tmp/sda1 /tmp/sdb1
10,3 Klon
Jeśli /dev/sdb1
źródło było klonem:
sudo dd if=/dev/sdb1 of=/dev/sda1
Jeśli /dev/sda1
źródło było klonem:
sudo dd if=/dev/sda1 of=/dev/sdb1
Gotowy!
11. Gotcha maszyny wirtualnej
Jeśli chcesz to najpierw wypróbować na maszynie wirtualnej, istnieją pewne zastrzeżenia: Najwyraźniej pamięć NVRAM przechowująca informacje o UEFI jest zapamiętywana między restartami, ale nie między cyklami zamykania i restartowania. W takim przypadku możesz skończyć w konsoli Shell UEFI. Następujące polecenia powinny uruchomić komputer z /dev/sda1
(użyj FS1:
dla /dev/sdb1
):
FS0:
\EFI\ubuntu\grubx64.efi
Pomocne może być również pierwsze rozwiązanie z pierwszej odpowiedzi rozruchu UEFI w virtualbox - Ubuntu 12.04 .