Ubuntu 18.04 wyszedł 26 kwietnia 2018 r. I chcę go wypróbować, aby zaktualizować moje programy i przekonwertować moje dane, ale nie chcę zatwierdzać, jeśli występują błędy.
Zmniejszyłem system Windows z 410 GB do 385 GB, ponownie uruchomiłem Ubuntu 16.04 i pobiegłem, gparted
aby utworzyć nową partycję 25 GB oznaczoną „Ubuntu18.04”. Uruchomiłem rm-kernels
i usunąłem około 20 jąder, aby wyeliminować około 10 GB na Ubuntu 16.04.
Teraz chcę skrypt, który zapełni nową partycję 16.04 LTS i utworzy dla niej nową opcję menu Grub. Należy kopiować tylko odpowiednie katalogi. Na przykład /sys
, /run
, /proc
i /dev
są katalogi wirtualne tworzone podczas startu i nie powinny być kopiowane.
Chcę także /etc/fstab
załatać poprawny UUID i cron
wyłączyć zadania ponownego uruchamiania, aby codzienne kopie zapasowe sklonowanych danych nie były uruchamiane po uruchomieniu klonu.
Przewiduję uruchomienie skryptu wiele razy w ciągu najbliższych kilku tygodni / miesięcy. Jako taki proces klonowania powinien być łatwo powtarzalny.
Ten sam skrypt można wykorzystać do testowania aktualizacji bezpieczeństwa i nowych aktualizacji zespołu jądra Ubuntu bez wpływu na systemy produkcyjne.
Odpowiedzi:
Skrypt Bash do klonowania aktywnej partycji Ubuntu w celu klonowania partycji
clone-ubuntu.sh
Skrypt bash bezproblemowo i bezpiecznie replikować 16.04 LTS do partycji uaktualniania do 18.04 LTS:Ważne punkty do rozważenia:
ext4
partycję wystarczająco dużą, aby pomieścić klon Ubuntu 16.04clone-ubuntu.sh
partycja nie może zostać zamontowana. Skrypt automatycznie montuje i odmontowuje partycję.rsync
służy do kopiowania plików z/
partycji klonowania. Przy pierwszym uruchomieniuclone-ubuntu.sh
zajmie to kilka minut. Przy drugim uruchomieniu skryptu tylko zmiany plików są aktualizowane i powinno to zająć mniej niż minutę./
pliki i katalogi./etc/cron.d
zadania Cron (restart) są przenoszone do nowego podkatalogu o nazwie/etc/cron.d/hold
. Po uruchomieniu klon należy pamiętać o uruchomieniu,sudo crontab -e
aby uniemożliwić uruchomienie wybranych zadań cron./etc/fstab
jest modyfikowany odpowiednim UUID dla partycji, na której się znajduje./boot/grub/grub.cfg
jest modyfikowany odpowiednim UUID w celu pomyślnego uruchomienia klonowania. Sklonowane plikiquiet splash
są zmieniane nanosplash
, abyś mógł przewijać wiadomości terminala. Daje to świadomość wizualną podczas uruchamiania klonowania zamiast wersji „rzeczywistej”.update-grub
uruchamia się, aby zaktualizować Gruba o nowe opcje menu wskazujące na sklonowaną partycję./etc/update-manager/release-upgrades
jest modyfikowany, aby zmienićPrompt=never
naPrompt=lts
. Gdy uruchomisz klon i wykonaszdo-release-upgrade -d
to, możesz zaktualizować Ubuntu 16.04 do 18.04.Ekran potwierdzenia
Po wybraniu docelowej partycji klonowania jest najpierw weryfikowana jako
ext4
typ partycji i nie jest jeszcze zamontowana. Jeśli test zostanie zaliczony, pojawi się komunikat potwierdzający:W tym przykładzie do klonowania wybrano poprzedni klon. Dostępna przestrzeń na klonie jest wyciszona, ponieważ wiemy już, że dostępna jest wystarczająca ilość miejsca.
Jeśli masz wiele instalacji Ubuntu, sprawdź, czy wybrałeś odpowiednią partycję, aby sklonować aktualnie uruchomione Ubuntu, zamontowane jako
/
(root).To Twoja ostatnia szansa na przerwanie, naciskając dowolny klawisz oprócz
y
lubY
.Lista wyników
Po uruchomieniu skryptu otrzymasz następujące dane wyjściowe (z wyjątkiem danych wyjściowych wymienionych powyżej):
rsync
wyświetlanie statusu nowego klonuKlonowanie po raz pierwszy
rsync
spowoduje aktualizację od 0 do 100% wszystkich utworzonych plików. Żadne pliki nie zostaną usunięte ani zmienione, ponieważ klon jest pusty:rsync
wyświetlanie statusu podczas ponownego klonowaniaPodczas
rsync
ponownego klonowania nigdy nie trafia,100%
ponieważ pliki, które nigdy nie uległy zmianie, nie są kopiowane. Będą opóźnienia w postępie aktualizacji, ponieważrsync
skanowanie do następnego pliku, który ma zostać skopiowany, i kiedy usuwa nowe pliki utworzone w klonie, który nigdy nie istniał w oryginale:Skrypt Bash -
clone-ubuntu.sh
Skopiuj i wklej powyższy kod bash do nowego pliku o nazwie
/usr/local/bin/clone-ubuntu.sh
. Następnie uczyń nowy plik wykonywalnym za pomocą:Aby wywołać skrypt, użyj:
Jak zaktualizować klon 16.04 LTS do Ubuntu 18.04 LTS
To sekcja „bonusowa”, która może zainteresować wiele osób.
Uruchom ponownie komputer.
grub
Menu będzie zawierać nową opcję menu wskazując na klonowanych partycji. Możesz także wybrać konkretną wersję jądra z menu Zaawansowane opcje klonu .Jednym ze sposobów konwersji sklonowanego 16.04 LTS na 18.04 LTS jest uruchomienie:
Uwaga:
-d
flaga była wymagana przed 26 lipca 2018 r., Ale nie jest już konieczna.Przeczytaj uważnie potwierdzenie aktualizacji 18.04 .
Przed kontynuowaniem upewnij się, że nieaktywne blokowanie ekranu jest wyłączone. Proces aktualizacji może ulec awarii, jeśli komputer przejdzie do ekranu blokady z powodu nieaktywności klawiatury.
Podsumowanie procesu aktualizacji 18.04
Ta sekcja będzie dotyczyła konkretnego komputera, ponieważ różni użytkownicy instalują różne aplikacje. Oto krótkie podsumowanie, które stworzyłem na podstawie notatek i pamięci:
Zwróć uwagę na krok 10, którego większość ludzi nigdy nie zobaczy. Mam starą instalację sterownika nVidia na moim Ubuntu 16.04, której nigdy nie udało mi się całkowicie usunąć. Jest dołączony, ponieważ możesz mieć podobne stare pakiety, które nigdy nie zostaną całkowicie usunięte.
Grub zmienia menu startowe na klonowane w UEFI
W przeciwieństwie do aktualizacji 18.04 zauważyłem, że aktualizacja 18.04.1 zmieniła konfigurację Grub UEFI, aby używać menu gruba zamiast oryginalnego menu grub zgodnie z następującą odpowiedzią: Podwójny rozruch i pliki /boot/grub/grub.cfg - który to jest używany?
Uruchamianie
sudo update-grub
po uruchomieniu oryginalnej partycji nie wystarczy, aby zmienićgrub.cfg
ładowany przez gruba. Musisz użyć,sudo grub-install
aby zmusić gruba do użycia konfiguracji oryginalnej partycji.Zarówno oryginalna partycja, jak i klonowana partycja mogą używać
update-grub
własnego/boot/grub/grub.cfg
pliku, ale tylko jeden może być używany podczas rozruchu.Oczywiście, jeśli chcesz, aby grub korzystał z menu gruba Clone, nie rób powyższych kroków na partycji oryginału.
Edytuj historię
Edytuj 6 maja 2018 r. - Poprawiono wyświetlanie informacji o pustej partycji sklonowanej (docelowej).
Edytuj 26 sierpnia 2018 r. - Użyj
--inplace
opcji w przypadkursync
tak dużych plików, takich jak plik kosza o pojemności 2 GB, nie są duplikowane podczas klonowania podczas kopiowania. Może to prowadzić do błędu „brak miejsca na dysku”. Komentowanie/etc/cron.d
zastępuje, ponieważ użytkownicy mogą chcieć zachować lub chcieć inny katalog w ogóle. Zaktualizuj instrukcje, aby używaćdo-release-upgrade
bez-d
flagi, ponieważ Ubuntu 18.04.1 LTS jest już wydany.źródło
clone-ubuntu.sh
jakkolwiek Ale i tak wykorzystałem to 4 razy!Problemy z aktualizacją z poprzednich wersji do 18.04 LTS
Aktualizacja z poprzednich wersji do 18.04 LTS wcale nie jest łatwa. Nie wiem, czy w przeszłości było więcej problemów niż taka aktualizacja, ale ludzie, którzy aktualizują wersję, teraz ryzykują . Z drugiej strony znajdują błędy i jeśli zostaną zgłoszone , pomoże to w opracowaniu narzędzia aktualizacyjnego, a także w debugowaniu samego systemu Ubuntu 18.04 LTS.
Oznacza to, że ludzie, którzy są wystarczająco cierpliwi, aby czekać, aż aktualizacja zostanie oficjalnie wydana wraz z pierwszym wydaniem punktowym (18.04.1 LTS) , uzyskają płynniejszą jazdę .
Testowanie przed wykonaniem pełnej aktualizacji ...
Metoda opisana tutaj przez @ WinEunuuchs2Unix umożliwia testowanie z kopią prawdziwego systemu, jeśli aktualizacja do 18.04 LTS będzie działać z twoim obecnym [mniej lub bardziej zmodyfikowanym] systemem operacyjnym ze sprzętem komputerowym.
Może to zapobiec kilku katastrofom z uszkodzonym systemem operacyjnym.
Nie korzystałem jeszcze ze skryptu @ WinEunuuchs2Unix, ale rozumiem, że jest on bardzo przydatny i zamierzam go użyć. Byłem w stanie zaktualizować wersję z 8.04 do 10.04 do 12.04, z której korzystałem przez długi czas. Ale kiedy zdecydowałem się na aktualizację przez 14.04 do 16.04, nie udało mi się i nie mogłem znaleźć błędów.
... a jeśli wystąpią problemy, wykonaj nową instalację
Miałem dobre kopie zapasowe , więc zrobiłem nową instalację 16.04, a później skopiowałem to, co chciałem zachować i sprawdziłem, czy nie ma poprawek, skryptów, aliasów i zainstalowanych programów. Gdybym użył metody @ WinEunuuchs2Unix, zobaczyłbym problem wcześnie, zrobiłbym nową instalację bezpośrednio.
Aktualizacja trwałego systemu na żywo
Trwałe systemy na żywo są używane do uzyskania bardzo przenośnych systemów Ubuntu, które czasem są używane do testowania, a czasem przez długi czas.
Znanym problemem jest to, że nie należy aktualizować i aktualizować takiego systemu, jak w przypadku zainstalowanego systemu, ponieważ prędzej czy później ulegnie on uszkodzeniu. Ponadto utknąłeś z jądrem i sterownikami jądra, które są dostarczane z plikiem ISO, ponieważ są one uruchamiane przed uruchomieniem systemu nakładania.
Ale zwykle możliwe jest zachowanie
/home
katalogu, tak jak to możliwe, podczas nowej instalacji z oddzielną partycją „home”. Jeśli utworzyszhome-rw
partycję, trwały system na żywo znajdzie ją i użyje automatycznie podczas rozruchu.Rozwijam i testuję skrypt powłoki , mk-persistent-live_with_home-rw , który może utworzyć trwały system na żywo z
home-rw
partycją, a następnie może go zaktualizować ,zamień plik ISO na nowszy. Przynajmniej powinieneś zaktualizować, kiedy zostanie wydany nowy plik ISO, ale możesz także uaktualnić system LTS raz w miesiącu i korzystać z bieżących codziennych plików ISO z modułu śledzenia testów ,
zmodyfikuj grub dla nowego pliku ISO.
wyczyść (ponownie sformatuj)
casper-rw
plik, który przechowuje modyfikacje systemu operacyjnego (więc musisz ponownie zainstalować pakiety programu, które dodałeś do systemu),zachowaj
home-rw
partycję z osobistymi plikami, ustawieniami i poprawkami.Zobacz ten link, aby uzyskać więcej informacji.
Dodatkowy link
Ogólne wskazówki dla osób, które chcą przetestować najnowszą i najlepszą wersję Ubuntu, można znaleźć pod następującym linkiem:
Jak wziąć udział w testowaniu i rozwoju Ubuntu
źródło