Dzięki za odpowiedzi, w końcu znalazłem też inne metody, po prostu szukałem niewłaściwego sposobu: nie wiedziałem, że wszystko, co muszę napisać, to „zmienić logikę w podstawową”. Wydaje mi się, że rozwiązaniem, które zaproponowałem, jest Knjers, ale tak powiedziałem w jednym zdaniu, że nawet nie rozumiałem o czym on mówił, dopóki tego nie przeczytałem.
Post jest następujący: Konwertuj przez terminal
Gdybym wcześniej znalazł sposób na znalezienie rozwiązania tego problemu, oszczędziłbym jeden bezużyteczny post, ale może niektórzy ludzie byliby w tej samej sytuacji, więc wznowię rozwiązanie. Krótko mówiąc, potrzebujemy sfdisk. Pierwszy bieg
sudo sfdisk -d / dev / sdX
aby uzyskać szczegółową mapę dysku (oczywiście X oznacza literę urządzenia, uruchom sudo fdisk -l, aby uzyskać listę dysków, jeśli nie znasz kodu dysku).
Po prostu skopiuj to do pliku tekstowego i ręcznie edytuj tablicę partycji do tej, którą chcesz. Uważaj, szansa na spieprzenie wszystkiego jest dość duża. Testowałem wcześniej na pamięci USB i to po prostu działa.
W każdym razie wszystko, co musisz zrobić, to znaleźć mapę, którą chcesz utworzyć, i wyrazić ją w kategoriach sektorów. Wszystko jest łatwiejsze, jeśli znajdujesz się w sytuacji takiej jak moja (chcesz pozbyć się rozszerzonej partycji), ponieważ oznacza to, że możesz usunąć dowolną logikę, ale taką, którą chcesz zmienić na podstawową i mieć tylko jedną logikę wewnątrz rozszerzonej, tak dużą jak to. Możesz dostać się do tej sytuacji za pomocą łatwiejszego automatycznego narzędzia, takiego jak GParted. Jest to łatwiejsze, ponieważ możesz po prostu użyć początkowego i końcowego punktu rozszerzenia dla nowego podstawowego, a jeśli chcesz zachować rozszerzenie z kilkoma logikami i po prostu przenieść jeden z nich poza (oczywiście jest to możliwe tylko wtedy, gdy jest ostatni lub pierwszy - wystarczy przesunąć, jeśli nie jest - a jeśli masz trzy partycje podstawowe / rozszerzone lub mniej), edycja jest nieco bardziej złożona,
Załóżmy na przykład, że masz tę prostą mapę: jedną logikę w rozszerzonej lokalizacji na samym początku, swap i ogromną partycję danych.
sudo sfdisk -d / dev / sda
tablica partycji jednostki / dev / sda
: sektory
/ dev / sda1: start = 2048, rozmiar = 80000000, Id = f
/ dev / sda2: start = 80002048, rozmiar = 800000, Id = 82
/ dev / sda3: start = 80802048, rozmiar = 800000000, Id = 83
/ dev / sda4: start = 0, rozmiar = 0, Id = 0
/ dev / sda5: start = 4096, rozmiar = 79997952, Id = 83
Numery są po prostu tworzone przeze mnie, aby łatwiej było zobaczyć, jak to działa. Jak widać, maksymalna możliwa liczba „prawdziwych” partycji wynosi cztery, co oznacza, że każda logika rozpocznie numerację od pięciu, nawet jeśli masz mniej niż cztery podstawowe. Ponadto / dev / sda4 byłby wyświetlany jako typ 0, zaczynając od 0, a duży 0 również, jeśli masz tylko trzy partycje i nie ma logiki. Próg czterech podstawowych jest zawsze wyświetlany. Id 83 to partycja ext Linux, a 82 to Linux swap (lista typów partycji z identyfikatorami) . Teraz, jeśli chcemy zachować tę dokładną mapę, z wyjątkiem partycji logicznej zastępującej rozszerzoną jako logiczną, po prostu wklejamy dokładne wyjście otrzymanej komendy (z „tablicy partycji”) i modyfikujemy ją w ten sposób:
tablica partycji jednostki / dev / sda
: sektory
/ dev / sda1: start = 4096, rozmiar = 79997952, Id = 83
/ dev / sda2: start = 80002048, rozmiar = 800000, Id = 82
/ dev / sda3: start = 80802048, rozmiar = 800000000, Id = 83
/ dev / sda4: start = 0, rozmiar = 0, Id = 0
Wszystko, co zrobiliśmy, to umieszczenie naszej logiki, z jego oryginalnymi limitami (zaczyna się nieco później i kończy nieco przed rozszerzeniem, musisz umieścić własne) w miejsce naszego rozszerzenia (zajmuje teraz pozycję z liczbą <5, zarezerwowane dla wersji rozszerzonej lub podstawowej) o identyfikatorze 83 (macierzysty system plików Linux, ostatecznie definiując go jako podstawowy). W ten sposób, gdy zaimportujemy nową tabelę, fragment zawierający wszystkie pliki naszej logiki zostanie rozpoznany jako część podstawowej, ale żaden z nich nie zostanie usunięty, więc jest po prostu idealny. Aby zaimportować naszą nową konfigurację, zapisz nasz plik tekstowy i wykonaj następujące polecenie:
sudo sfdisk --force / dev / sdX <ścieżka / do / pliku / yournewpartitiontable.txt
WAŻNE: zrób to podczas sesji na żywo, fundamentalne jest to, że dysk twardy nie jest używany, a wszystkie partycje są odmontowane. Jeśli dysk, który modyfikujesz, nie jest dyskiem systemowym (jak drugi dysk twardy lub dysk zewnętrzny lub pamięć USB / karta SD), to dobrze, po prostu upewnij się, że wszystkie jego partycje nie są zamontowane.
Metoda GParted:
Podczas uruchamiania systemu GParted Live w celu usunięcia wszystkich innych partycji logicznych i uzyskania rozszerzenia zawierającego wszystkie logiki, które chciałem zmienić na podstawowe, właściwie przypadkiem natknąłem się na nową metodę (tę, której użyłem, więc mogę gwarantuję, że to działa, musisz mieć mniej niż cztery partycje, ponieważ będziesz potrzebował darmowego bloku kopii zapasowej i faktycznie utworzysz nowy podstawowy, zanim będziesz mógł usunąć rozszerzone).
GParted ma kopięfunkcja, która tworzy dokładną kopię partycji w wystarczająco wolnym bloku. Wszystko, co zrobiłem, to skopiowałem moją logikę poza rozszerzoną, a następnie, po upewnieniu się, że wszystko działało tak jak na mojej oryginalnej partycji, usunąłem logiczną i rozszerzoną i przeniesiłem wszystko w miejsce tych, rozszerzając moją partycję danych. Ta metoda jest bezpieczniejsza, ponieważ nie jest w 100% manualna, ale także znacznie dłuższa (sprawiłem, że moja partycja danych zajmuje wolne miejsce, zwiększając ją z 380 do 440 GiB, co wymagało 5 godzin) i może bardziej stresujący dysk twardy, ponieważ ty zrobią w nim więcej akcji zamiast bezpośrednio modyfikować tablicę partycji i informacje symboliczne. Ale znów jest fajniejszy, ponieważ wykonujesz wszystko w jednej operacji,
Mam nadzieję, że to pomaga, na zdrowie!
hlovdal
napisał naprawdę świetną odpowiedź na ten problem tutaj: serverfault.com/questions/48879/…