UEFI - kopiowanie dysków i partycji

Tu możemy porozmawiać na temat podstaw budowy amatorskich maszyn CNC
Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9319
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

UEFI - kopiowanie dysków i partycji

#1

Post napisał: tuxcnc » 21 kwie 2025, 12:06

Nie wiem czy wybrałem dobry dział, ale nie miałem lepszego pomysłu...
W starych komputerach z klasycznym BIOS wszystko było przewidywalne.
Jak działa UEFI nie mam zielonego pojęcia i mnie o to nie pytajcie.
Jedno jest pewne - nie działa tak, jak powinien...
Ostatnio postanowiłem zrobić porządki w swoich komputerach do LinuxCNC przez Ethernet (mam też takie do LPT, ale to inny temat).
Otóż mam trzy identyczne egzemplarze używane od dwóch czy trzech lat, z czasem zawartość dysków zaczęła się znacząco różnić i przyszedł czas żeby zlikwidować starocie, z których i tak nigdy bym już nie skorzystał.
Na tych komputerach mam co najmniej dwa systemy (Windows/Linux), co wynika stąd, że one mają zaszyty kod aktywacyjny Windows, więc nawet jeśli nie będę z niego korzystał, to niby dlaczego mam rezygnować z czegoś co mam za darmo i legalnie?
Do tych komputerów mam też po dwa dyski (jeden SATA 2.5" i jeden NVME M.2). Wynika to stąd, że to małe i biedne w peryferia komputery, choć nie najgorsze osiągami (AMD A10). One po prostu mają tylko dwa złącza różnego typu i dwóch takich samych dysków równocześnie podłączyć się nie da.
Tak więc wziąłem pusty dysk SATA 2.5" (to był jedyny pusty jaki miałem) i podłączyłem go jako jedyny w jednym z komputerów.
Najpierw zainstalowałem Windows 11 (dawniej był 10). Instalacja przebiegła bez problemów, system aktywował się "licencją cyfrową" czyli kodem zaszytym w komputerze.
Zawsze Windows instaluję jako pierwszy, bo on ma swoje zagrania, tworzy jakieś partycje nieznanego przeznaczenia i po prostu lepiej i bezpieczniej jest instalować go na pustym dysku. Potem z poziomu Windows zmniejszam partycję systemową i uzyskuję wolne miejsce na instalację Linuksa.
Gdybym jednak chciał doinstalować Linuksa i zostawić w komputerze ten dysk, toby nie było o czym pisać...
Ja potrzebowałem skopiować system z innego dysku (ten najbardziej aktualny, zainstalowany i dopieszczony miesiąc temu)...
No i tutaj jest problem, bo na tym nowym dysku po instalacji Windows uruchamia się ... Windows i do skopiowanej na żywca partycji linuksowej nie będzie dostępu.
Wyjścia są dwa.
Pierwsze, którego nie lubię i używam dopiero gdy inne metody zawodzą, to instalacja na Windows programu EasyBCD. (Są też chyba inne o porównywalnej użyteczności). Ten program umożliwia dodanie Linuksa do menu rozruchowego Windows, czego opisywać nie będę, bo nie pamiętam, ale na pewno to działa, bo kiedyś to robiłem z sukcesem.
Metoda druga, to zainstalowanie dowolnego Linuksa tylko dla rozruchu, nawet okrojonej wersji tylko w trybie tekstowym. Po uruchomieniu takiego Linuksa robimy update-grub i powinniśmy mieć możliwość uruchomienia dowolnego systemu zainstalowanego na dowolnym z zainstalowanych dysków (konieczna może być edycja /etc/default/grub).
Nie będę tego opisywał, uprzedzę tylko, że niekoniecznie zadziała.
Tak właśnie zrobiłem, zainstalowałem Debiana na małej partycji umieszczonej na końcu dysku, po czym skopiowałem partycję z innego dysku na wolne miejsce. Tutaj mała dygresja, że potrzebowałem skopiować partycję większą od wolnego miejsca, więc najpierw musiałem ją zmniejszyć w gparted, a po skopiowaniu przywrócić do dawnej wielkości.
Tak więc podłączamy dysk źródłowy, na docelowym robimy dowolnego typu partycję wymaganej wielkości i kopiujemy przez dd. Oczywiście linuksowe dd to odpowiednik bomby atomowej i jego niewłaściwe użycie zakończy się katastrofą. Trzeba nie tylko stosować się do zasady trzy razy pomyśl zanim raz zrobisz, ale też trzy razy sprawdzić, czy te partycje na których chcemy wykonać operację faktycznie tak się nazywają i wpisaliśmy je we właściwej kolejności.
Dla fanów Windows taka informacja, że w Linuksie nie ma "chronionych plików systemowych" i root może skasować/nadpisać dowolnie wszystko...
Specjalnie nie napiszę jakiej konkretnie komendy użyłem, żeby ktoś jej bezrefleksyjnie nie wklepał, a potem mnie klął. To są informacje łatwo dostępne w necie, ale jak ktoś ich nie rozumie, to nie powinien używać...
Tak więc doszliśmy do sytuacji gdy mamy zainstalowany Windows (uruchamia się), Linuks "rozruchowy" (uruchamia się) i partycję skopiowaną przez dd (nie uruchamia się).
Dlaczego się nie uruchamia?
Błąd jest naprawdę trywialny i nie byłoby żadnego problemu, gdyby przy uruchamianiu wyświetlił się stosowny komunikat błędu, ale tak po prostu nie jest, bootowanie zawiesza się na etapie wczytanego initrd i szukaj wiatru w polu...
Znalezienie przyczyny zajęło mi trochę czasu i zjadło trochę nerwów, ale zasadniczo wiedziałem czego szukać, więc w końcu znalazłem...
Otóż jak pisałem, najpierw zainstalowałem nowego Windowsa, który sobie utworzył partycję EFI o losowo przydzielonym UUID.
System który próbowałem uruchomić ma w /etc/fstab wpis dotyczący montowania partycji EFI, ale oczywiście o innym UUID, bo z innego dysku...
Wystarczy wyedytować /etc/fstab podmieniając stary UUID na nowy UUID i system wstaje jakby nigdy nic...
Po uruchomieniu tego systemu, na którym nam zależy, możemy zrobić grub-install, potem update-grub, potem jeszcze update-initramfs, i niekoniecznie to zadziała, bo nie każdy kernel obsługuje EFI, a kernel RT z Debiana 12 na pewno nie... Tak więc żeby to zrobić trzeba się zbootować z kernelem generic, a nie RT (Zaawansowane opcje, czy jakoś tak, w menu GRUB). Jeśli zrobimy to prawidłowo i uruchamia się nowy Grub, to możemy usunąć tę rozruchową partycję, bo nie będzie już potrzebna...
Jeszcze trzy słowa o pewnym problemie związanym z Windows 10/11, otóż standardowo nadpisuje on wpisy rozruchowe i przy następnym uruchomieniu wstaje Windows zamiast Grub. Naprawa jest wyjątkowo łatwa, co opisane jest tutaj https://ubuntu.pl/forum/viewtopic.php?p=1040604

Wreszcie doszliśmy do tego, co tygrysy lubią najbardziej...
Mamy nasz upragniony dysk, na którym zainstalowaliśmy wszystko co potrzebowaliśmy, tylko nie chcemy go używać na co dzień, a zostawić sobie jako kopię bezpieczeństwa, ewentualnie aktualizowaną co jakiś czas, ale bez ryzyka jej uszkodzenia lub zaśmiecenia...
Na dodatek jest ta SATA 2,5", a mamy wolne gniazdo szybszego NVME i dysk NVME ze starociami...
Tak więc po dokładnym sprawdzeniu tego starego dysku, czy nie zawiera jakichś cennych danych, zrobiłem dd zawartości nowego dysku na stary. Ten nowy dysk jest 128 GB, a ten stary 256 GB, co nie jest dużym problemem, ale nawet gdyby było odwrotnie, to też z pewnymi ograniczeniami się da. Jest rzeczą oczywistą, że nie da się skopiować większego dysku na mniejszy (bo fizycznie zabraknie miejsca), ale tej części która się zmieści da się używać. Po prostu trzeba jako pierwszy uruchomić gparted, który wyświetli komunikat, że z dyskiem jest nie halo i zgodzić się na naprawienie problemu. Jeśli kopiowaliśmy z mniejszego dysku na większy, to na tym sprawa się kończy, jeśli z większego na mniejszy, to trzeba jeszcze usunąć wpisy partycji które się nie zmieściły, żeby żaden program nie próbował z nich skorzystać, co jest oczywiście niemożliwe.
No i tutaj dochodzimy do sedna.
Skopiowaliśmy cały dysk bajt po bajcie i ten stary się uruchamia, a ten nowy nie...
I to jest kwintesencja UEFI...
Ja już miałem takie jaja, że UEFI próbował uruchamiać system z usuniętego fizycznie dysku, a nowo zamontowanego nie widział.
Nie ma innego wytłumaczenia niż to, że UEFI robi sobie gdzieś kopie plików rozruchowych i z nich próbuje korzystać.
To jest dobre kiedy pliki rozruchowe na dysku zostaną usunięte lub nadpisane, ale przy wymianie dysku robi się poważny problem...
W końcu udało mi się problem rozwiązać, ale nie bardzo wiem jak, a już na pewno tego nie rozumiem...
Ten nowy dysk zaczął być widzialny kiedy wszedłem do BIOS, niczego tam nie robiłem, ale na koniec kazałem zapisać nowe ustawienia.
Po tym zabiegu GRUB zaczął się uruchamiać, podobnie jak Debian, ale Windows uparcie strajkował i kończyło się na debilnym komunikacie, że coś jest zepsute i żeby z kimś się skontaktować...
Próbowałem bez rezultatu wszystkich znanych mi metod, w tym naprawy z nośnika instalacyjnego.
W końcu, totalnie zrezygnowany, spróbowałem uruchomić Windows w trybie awaryjnym i jak za dotknięciem leszczynowej różdżki wszystko "samo" się naprawiło...

Jak pisałem, nie znam się na UEFI, nigdy nie czułem potrzeby zgłębiać tego tematu, ale może jest na forum ktoś, kto ma większą wiedzę i coś wyjaśni lub doradzi...




strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 4688
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

Re: UEFI - kopiowanie dysków i partycji

#2

Post napisał: strikexp » 21 kwie 2025, 13:02

Ale Ty kombinujesz... uruchamiasz dowolny linux z pendrive i naprawiasz grub.
A co do działań na partycjach, kupuje się dysk np 4TB i robi na nim całą kopię partycji. Osobiście nigdy tego nie testowałem. Ale powinno zatrybić po skopiowaniu i właśnie wygenerowaniu grub na nowo.
Można też stworzyć pełny obraz dysku, który powinien zawierać wszystkie dane do odzysku. Tyle że z racji objętości to jest raczej rozwiązanie czasochłonne i pojemnościochłonne.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9319
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: UEFI - kopiowanie dysków i partycji

#3

Post napisał: tuxcnc » 21 kwie 2025, 13:20

strikexp pisze:
21 kwie 2025, 13:02
Ale Ty kombinujesz... uruchamiasz dowolny linux z pendrive i naprawiasz grub.
Wiem, że tekst był długi, ale albo go nie przeczytałeś, albo nie zrozumiałeś.
Tu nie chodzi ani o naprawianie GRUB, ani o kopiowanie partycji, ani o robienie kopii na dużym dysku...
Chodzi o to, że UEFI ma swoje zagrania i po wymianie dysku na nowy chce uruchamiać system na starym, którego fizycznie nie ma...
Możesz mieć na przykład taką sytuację, że wyjmujesz działający dysk, ale kiedy po jakimś czasie postanowisz go włożyć z powrotem, to nie uruchomisz z niego systemu...
To po prostu nie jest problem zawartości dysku (skopiowałem bajt po bajcie z SATA na NVME i się nie uruchomił), tylko jakiejś pamięci podsystemu UEFI wbudowanego w komputer.
Internet stał się takim śmietnikiem, że coraz trudniej cokolwiek w nim znaleźć.
Zapewne istnieje jakaś możliwość zresetowania UEFI, ale nic na ten temat znaleźć nie potrafię.


skmskm
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 332
Rejestracja: 15 lis 2014, 20:21
Lokalizacja: Gliwice

Re: UEFI - kopiowanie dysków i partycji

#4

Post napisał: skmskm » 21 kwie 2025, 13:50

Podejrzewam że nie zadziało bo adres w partycji eps/efi się zmienił kierujący dalej na linuxa/windowsa.
Inny jest sterownik dla SATA i NVME , przy kopi Windowsa bez dodatku linuksa zadziałało by bez problemu.
Da się z instalatora windows naprawić partycje eps/efi , windows by zadziałał.
Partycje można z pena z linuksem naprawić również.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9319
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: UEFI - kopiowanie dysków i partycji

#5

Post napisał: tuxcnc » 21 kwie 2025, 14:02

skmskm pisze:
21 kwie 2025, 13:50
Podejrzewam że nie zadziało bo adres w partycji eps/efi się zmienił kierujący dalej na linuxa/windowsa.
Inny jest sterownik dla SATA i NVME , przy kopi Windowsa bez dodatku linuksa zadziałało by bez problemu.
Da się z instalatora windows naprawić partycje eps/efi , windows by zadziałał.
Partycje można z pena z linuksem naprawić również.
Tak w skrócie, to nie masz racji.
To znaczy, że coś tam wiesz, czegoś się domyślasz, ale wygląda na to, że jest inaczej...
Problem sprowadza się do tego, że UEFI zapamiętuje uruchamiane partycje, a potem się w nich gubi.
Coś tam znalazłem o jakiejś pamięci NVRAM używanej przez UEFI, że można ją wyczyścić, i że wtedy nic się nie uruchomi, co trochę powstrzymuje mnie przed wykonaniem testów...
Powyżej dokładnie opisałem co się działo - UEFI w ogóle nie zaglądał na partycję EFI fizycznie zamontowanego dysku, tylko próbował uruchamiać nieobecny system ze swojej własnej pamięci...


skmskm
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 332
Rejestracja: 15 lis 2014, 20:21
Lokalizacja: Gliwice

Re: UEFI - kopiowanie dysków i partycji

#6

Post napisał: skmskm » 21 kwie 2025, 14:24

Ja zazwyczaj kopiuje dyski sata talerzowe na sata ssd dla aparatów usg(win10 emblemed).
Za pomocą "ghost32.exe" działa zazwyczaj od ręki, niekiedy drobne modyfikacje w systemie są potrzebne, zwykła edycja rejestru(od strony oprogramowania usg).
Za to "Hdd copy Tool" za każdym razem kopiuje i działa od ręki(uefi/mbr).
Działa również na innym aparacie z inną wersją systemu, startuje...

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9319
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: UEFI - kopiowanie dysków i partycji

#7

Post napisał: tuxcnc » 21 kwie 2025, 14:35

skmskm pisze:
21 kwie 2025, 14:24
Ja zazwyczaj kopiuje dyski sata talerzowe na sata ssd dla aparatów usg(win10 emblemed).
Za pomocą "ghost32.exe" działa zazwyczaj od ręki, niekiedy drobne modyfikacje w systemie są potrzebne, zwykła edycja rejestru(od strony oprogramowania usg).
Za to "Hdd copy Tool" za każdym razem kopiuje i działa od ręki(uefi/mbr).
Działa również na innym aparacie z inną wersją systemu, startuje...
No i co z tego?


skmskm
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 3
Posty: 332
Rejestracja: 15 lis 2014, 20:21
Lokalizacja: Gliwice

Re: UEFI - kopiowanie dysków i partycji

#8

Post napisał: skmskm » 21 kwie 2025, 14:45

tuxcnc pisze:
21 kwie 2025, 14:35
No i co z tego?
Może złego programu użyłeś albo co gorzej clonezilla .

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9319
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: UEFI - kopiowanie dysków i partycji

#9

Post napisał: tuxcnc » 21 kwie 2025, 15:03

skmskm pisze:
21 kwie 2025, 14:45
Może złego programu użyłeś albo co gorzej clonezilla .
Nie, użyłem dobrego programu i nawet napisałem jakiego, co znaczy że odpowiadasz na post którego nie czytałeś...
Wyjaśnię Ci więc w czym jest problem.
W starych komputerach BIOS czytał pierwszy sektor pierwszego dysku i jeśli znalazł tam program rozruchowy, to go uruchamiał.
Dzięki temu wszystko działało tak, jak się można było spodziewać i można było robić mało oczywiste cuda, jak na przykład skopiować bootsektor HDD na FDD (bootsektor był czytany z dyskietki, ale uruchamiał system na twardym dysku). Jeśli zamazałeś bootsektor HDD, to bez dyskietki nie uruchomiłeś komputera...
Działo się tak dlatego, że BIOS był pozbawiony jakiejkolwiek inteligencji i nie wiedział co robi (w powyższym przypadku skąd przeczytał uruchamiany kod).
UEFI natomiast dostało własną "inteligencję" i czasem robi rzeczy wyjątkowo głupie, jak wcześniej wspomniane uruchamianie systemu z usuniętego dysku...
Powyższe NIE MA NIC WSPÓLNEGO z użytym systemem operacyjnym, czy programem uzytym do skopiowania dysku/partycji.
Przestań więc uparcie wyskakiwać ze swoimi ulubionymi lub nielubianymi programami pod Windows, bo jest to skrajnie nie na temat.

Awatar użytkownika

JacekBelof
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 668
Rejestracja: 02 gru 2018, 22:25
Lokalizacja: Tarnów MP
Kontakt:

Re: UEFI - kopiowanie dysków i partycji

#10

Post napisał: JacekBelof » 21 kwie 2025, 15:32

Hmm... próbowałeś wyłączyć Secure Boot, albo/i zresetować klucze TPM? Ten debil (UEFI) gdzieś zapisuje informacje o sprzęcie (jakieś numery seryjne, czy inne gówno).
Seria, w moim wykonaniu, to dwie sztuki, w tym jedna w odbiciu lustrzanym. :lol:

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „CNC podstawy”