Zrozumienie tabel partycji


17

Jest to wynik fdisk:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419424255   209711104   83  Linux
/dev/sda2       419424256  1258291199   419433472   83  Linux
/dev/sda3      1258291200  1300236287    20972544    f  W95 Ext'd (LBA)
/dev/sda4   *  1300236288  1709836287   204800000    7  HPFS/NTFS/exFAT
/dev/sda5      1258293248  1275062271     8384512   82  Linux swap / Solaris

I to jest wynik cfdisk:

Name         Flags       Part Type   FS Type           [Label]         Size (MB)
--------------------------------------------------------------------------------
                                     Unusable                               1.05  *
sda1                      Primary    ext4                              214744.18  *
sda2                      Primary    ext4                              429499.88  *
sda5         NC           Logical    swap                                8586.79  *
                          Logical    Free Space                         12889.10  *
sda4         Boot         Primary    ntfs                              209715.20  *
                                     Unusable                          124768.71  *

Mam mieć 2 partycje Linuksa, 1 rozszerzoną partycję Windows o wielkości około 20 GB z logiczną partycją wymiany 8 GB i około 130 GB miejsca niepodzielonego na partycje.

Jakby tego było mało, wydajność gpartedrównież jest nieco inna. wprowadź opis zdjęcia tutaj

Jestem zdezorientowany wynikami, które tu zamieściłem.

  1. Dlaczego jest /dev/sd4oznaczony jako bootowalny, jeśli uruchamiam z GRUB2?
  2. Co to jest / dev / sda3? Jaki jest jego typ (podstawowy / logiczny)? Dlaczego nie jest wyświetlany cfdisk?
  3. Dlaczego to wolne miejsce (przypuszczam, że 124768 cala cfdisk) jest oznaczone jako bezużyteczne?
  4. Co oznacza flaga NC cfdiskdla partycji wymiany?

Odpowiedzi:


26

Dlaczego / dev / sd4 jest oznaczony jako bootowalny, jeśli uruchamiam z GRUB2?

Bootowalna jest flaga w MBR (w rzeczywistości bajt, który jest porównywany z 0x80). Ten wpis jest oznaczony jako bootowalny. „Tradycyjny” program ładujący odczytuje MBR, szuka wpisu z flagą rozruchową i przekazuje mu kontrolę. Gdy używasz grub, robi coś zupełnie innego, ponieważ zamiast tego używa pliku konfiguracyjnego. Ale narzędzia mówią ci, jak są skonfigurowane partycje (w rzeczywistości możesz mieć bootloader w MBR przeskakujący cię do / dev / sda4 i grub2).

Co to jest / dev / sda3? Jaki jest jego typ (podstawowy / logiczny)? Dlaczego nie jest wyświetlany w cfdisk?

/ dev / sda3 jest partycją podstawową typu partycja rozszerzona . Jest to partycja używana jako kontener dla innych partycji. gparted pokazuje to całkiem dobrze na swojej grafice.

Możesz spierać się, czy to faktycznie partycja, czy nie, z jednej strony zajmuje miejsce w MBR, z drugiej strony jest to kontener partycji , nie umieszczasz tam systemu plików.

Narzędzia do partycjonowania traktują je specjalnie, więc cfdisk wydaje się raczej nie chcieć tego pokazywać. Na przykład fdisk nie zezwala również na niektóre akcje na tych partycjach.

Dlaczego to wolne miejsce (przypuszczam, że 124768 w cfdisk) jest oznaczone jako nieużyteczne?

Myślę, że są to 116,20 GiB pokazane przez gparted na końcu

Możesz mieć tylko 4 partycje podstawowe (licząc partycję rozszerzoną). Wynika to z liczby automatów na końcu MBR. Ponieważ masz już 4 z nich, nieprzydzielone miejsce na końcu nie może zostać podzielone na partycje (nie możesz tam umieścić partycji logicznej, ponieważ możesz mieć tylko jedną partycję rozszerzoną i powinna ona być ciągła).

Twoje (łatwe) opcje korzystania z tego miejsca to:

  • przedłużyć / dev / sda4, aby go użyć
  • przedłużyć / dev / sda3, aby uwzględnić / dev / sda4 (a najlepiej także do końca dysku) i uczynić / dev / sda4 logiczną partycją

Co oznacza flaga NC w cfdisk dla partycji wymiany?

Cytując stronę manuala cfdisk : „Flagi mogą być Boot, która oznacza partycję rozruchową, lub NC, co oznacza„ Not Compatible with DOS or OS / 2 ”.” Nie ma się czym martwić


11

Zacznijmy ...

  1. Jest oznaczony jako bootowalny, aby system Windows mógł załadować z niego moduł ładujący. Mimo że Grub może załadować się jako pierwszy, „załaduje” do modułu ładującego Windows, jeśli Windows zostanie wybrany z listy. Aby program rozruchowy systemu Windows mógł działać, musi znajdować się na partycji rozruchowej (czy ktoś może to dla mnie dwukrotnie sprawdzić? Nigdy nie próbowałem usunąć flagi rozruchowej w instalacji systemu Windows 7 ...)

  2. SDA3 jest w rzeczywistości partycją rozszerzoną . Dysk jest sformatowany jako MBR zamiast GPT . Jednym z ograniczeń jest to, że MBR może mieć maksymalnie 4 partycje podstawowe . Aby obejść ten problem, możesz użyć rozszerzonej partycji podstawowej, aby następnie utworzyć wiele mniejszych partycji logicznych w środku (uzyskując więcej niż 4 partycje).

  3. Z powodu ograniczenia MBR nie można utworzyć piątej partycji podstawowej poza rozszerzoną partycją logiczną . To normalne. Jeśli rozszerzysz partycję rozszerzoną, powinieneś być w stanie utworzyć w niej nową partycję i wykorzystać resztę dysku.

  4. Ze stron Man cfdisk :

Znacznikami może być Boot , który oznacza partycję rozruchową lub NC , co oznacza „Niezgodny z DOS lub OS / 2”.


Nie ma problemu. Publikowałem te same odpowiedzi, a ta była jedyną, której nie poprawiłeś lepiej niż ja. ;)
ᴇcʜιᴇ007

3

Partycje od 1 do 4 są umownie „fizyczne” (były one jedynymi dostępnymi w tamtych czasach). Więc masz:

Device    Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419424255   209711104   83  Linux
/dev/sda2       419424256  1258291199   419433472   83  Linux
/dev/sda3      1258291200  1300236287    20972544    f  W95 Ext'd (LBA)
/dev/sda4   *  1300236288  1709836287   204800000    7  HPFS/NTFS/exFAT

/dev/sda5      1258293248  1275062271     8384512   82  Linux swap / Solaris

... sda1jest fizyczny, Linux. sda2jest fizyczny, Linux znów. sda3jest partycją logiczną, w której mogą znajdować się inne partycje (od 5). Wreszcie sda4jest partycja Windows oznaczona jako bootowalna - myślę, że tylko Windows dba o to już. GRUB2 chętnie uruchomi dowolną partycję, ale Windows chce być na partycji rozruchowej.

Teraz wewnątrz partycji logicznej sda3, która cfdisknie pokazuje się jako taka, istnieje odpowiednik większej liczby partycji fizycznych. Tylko w tym przypadku sda5.

A ponieważ sda3przechodzi z sektora 1258M do sektora 1300M, ale sda5używa ich tylko do 1275M, sektory 1275062272 do 1300236287 są bezpłatne (ale można je przypisać sda6).

Wreszcie, twoja sda4(ostatnia możliwa partycja fizyczna - MBR zawiera tylko cztery) nie zapełnia się do końca dysku. Pozostawia około 116 Gb off. Przestrzeń ta jest bezużyteczna, ponieważ nie można utworzyć fizycznej partycji, aby ją pokryć (partycja rozszerzona sda3nie może się powiększyć, ponieważ jej zasięg jest „blokowany” przez sda4):

[SDA3...(sda5)...| FREE    ][...sda4...][ UNREACHABLE SPACE ]end-of-disk

Rozwiązania umożliwiające odzyskanie niedostępnego miejsca

Żadne bezbolesne, obawiam się. W zależności od geometrii można usunąć sda4i opatrzyć adnotacjami jej granice. Następnie powiększ, sda3aby objąć cały dysk (ten sam początek, 1258291200, ale skończy się na końcu dysku), lub usuń go i utwórz ponownie z tym samym początkiem i maksymalnym końcem. Teraz możesz utworzyć partycję sda6wewnątrz sda3i sprawić, by kończyła się na cylindrze tuż przed sektorem 1300236288. Zajmie to wolne miejsce aktualnie istniejące w istniejącym sda3. Na koniec utworzysz partycję wewnątrz sda3, która będzie sda7informować system, że rozciąga się od 1300236288 do 1709836287 i jest typu 7.

Jeśli nie sformatujesz tej partycji, zawartość pozostanie bez zmian i będzie to prawidłowa partycja Windows. To jest

Oczywiście, jeśli coś pójdzie nie tak, stracisz wszystkie swoje dane. Partycje fizyczne (takie, jakie są teraz w systemie Windows sda4) i partycje fizyczno-logiczne (jak by to było kiedyś, gdy się stały sda7) niekoniecznie się łączą; niektóre narzędzia odmówią ich utworzenia. Sugeruję wykonanie testu na dysku wirtualnym o tym samym rozmiarze, utworzonym w pliku rzadkim (sam plik byłby naprawdę tylko kilka gigabajtów) lub na dysku zewnętrznym.

Innym sposobem, być może bezpieczniejszym, jest usunięcie sda5(to po prostu zamiana) i sda3przeniesienie sda4parametrów do sda3(może to oznaczać usunięcie sda4i ponowne sda3utworzenie z parametrami starego sda4), a to pozostawi sda4wolne miejsce (i „dziurę” pośrodku dysku). Większość BIOSów pozwala na tworzenie tabel partycji poza kolejnością. Ponownie nie powinno to wymagać kopiowania czegokolwiek. sda4teraz staje się sda3i pozostaje fizyczną partycją, więc jej geometria powinna lepiej zgadzać się z założeniami narzędzia do partycjonowania.

Oczywiście zalecanym i najbezpieczniejszym (i najwolniejszym) sposobem jest wykonanie kopii zapasowej wszystkich partycji, sformatowanie ich wszystkich i przywrócenie ich po „prawidłowym zmianie” ich położenia, przy czym partycja rozszerzona jest ostatnia i zajmuje cały pozostały dysk twardy. Spowoduje to pozbycie się wolnego miejsca w sda3 i odzyskanie niedostępnego miejsca na końcu, bez ryzyka (jeśli tworzenie kopii zapasowej zostanie wykonane prawidłowo - sprawdź to po utworzeniu kopii zapasowej. Raz utworzyłem kopię zapasową na wadliwym dysku zewnętrznym, który zmarł na mnie przywracanie. W ogóle nie było zabawne).


0

Oprócz tego, co już powiedziano o znaczeniu tego wszystkiego, myślę, że najbardziej bezbolesnym rozwiązaniem byłoby posiadanie przestrzeni wymiany na dużym obszarze na końcu i dodanie pustej przestrzeni na środku do twojej /home.

Aby to zrobić, musisz

  • usuń plik wymiany, gdy tylko nie będzie on używany, a także utrzymującą go partycję rozszerzoną
  • rozszerz swój, sda2aby zawierał pełną pustą przestrzeń po nim (będziesz musiał go usunąć i ponownie utworzyć).
  • odtwórz rozszerzoną partycję, aby usiąść za nią sda3i użyj jej, aby pomieścić tyle partycji, ile chcesz (no cóż, w określonych granicach).

Najłatwiej to zrobić cfdisk, ponieważ dynamicznie obsługuje rozszerzoną partycję. Ale uważaj, aby sda2zachować początkowy LBA, ponieważ w przeciwnym razie stracisz jego zawartość.

Po zwiększeniu rozmiaru partycji należy zmienić rozmiar dołączonego systemu plików, aby wykorzystać całą przestrzeń.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.