Осмысление таблиц разделов

17

Это результат 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

И это результат 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  *

У меня должно быть 2 раздела Linux, 1 расширенный раздел Windows, около 20 ГБ с логическим разделом подкачки 8 ГБ и до 130 ГБ неразделенного пространства.

Как будто этого было недостаточно, выход gpartedтакже немного отличается. введите описание изображения здесь

Я запутался в выводах, которые я разместил здесь.

  1. Почему /dev/sd4помечается как загрузочный, если я загружаюсь с GRUB2?
  2. Что такое / dev / sda3? Каков его тип (основной / логический)? Почему это не отображается в cfdisk?
  3. Почему это свободное пространство (я полагаю, 124768 в cfdisk) помечено как непригодное для использования?
  4. Что означает флаг NC cfdiskдля раздела подкачки?
пс-Окс
источник

Ответы:

26

Почему / dev / sd4 помечается как загрузочный, если я загружаюсь с GRUB2?

Загрузочный - это флаг в MBR (на самом деле это байт, который сравнивается с 0x80). Эта запись помечена как загрузочная. «Традиционный» загрузчик читает MBR, ищет запись с загрузочным флагом и передает ей управление. Поскольку вы используете grub, он делает что-то совершенно иное, вместо этого он использует свой файл конфигурации. Но инструменты сообщают вам, как настроены разделы (на самом деле, у вас может быть загрузчик в MBR, который переместит вас в / dev / sda4, и там будет установлен grub2).

Что такое / dev / sda3? Каков его тип (основной / логический)? Почему это не отображается в cfdisk?

/ dev / sda3 является основным разделом типа расширенного раздела . Это раздел, используемый в качестве контейнера для других разделов. gparted показывает это довольно хорошо на графике.

Вы можете поспорить, если это действительно раздел или нет, с одной стороны, он занимает слот в MBR, с другой стороны, это контейнер разделов , вы не помещаете туда файловую систему.

Инструменты разбиения обрабатывают их специально, поэтому cfdisk предпочитает не показывать их. Например, fdisk также не позволяет выполнять некоторые действия с этими разделами.

Почему это свободное пространство (я полагаю, 124768 в cfdisk) помечено как непригодное для использования?

Я думаю, что это 116,20 ГиБ, показанных gparted в конце

Вы можете иметь только до 4 основных разделов (считая расширенный раздел). Это зависит от количества слотов в конце MBR. Поскольку у вас уже есть 4 из них, это нераспределенное пространство в конце не может быть разделено (вы не можете поместить туда логический раздел, так как у вас может быть только один расширенный раздел, и он должен быть смежным).

Ваши (простые) варианты использования этого пространства будут следующими:

  • расширить / dev / sda4, чтобы использовать его
  • расширить / dev / sda3, чтобы включить / dev / sda4 (и предпочтительно также до конца диска) и сделать / dev / sda4 логическим разделом

Что означает флаг NC в cfdisk для раздела подкачки?

Цитируя справочную страницу cfdisk : «Флаги могут быть Boot, который обозначает загрузочный раздел, или NC, что означает« Несовместимо с DOS или OS / 2 »». Не о чем беспокоиться

Анхель
источник
11

Давайте начнем ...

  1. Он помечен как загрузочный, поэтому Windows может загрузить с него свой загрузчик. Несмотря на то, что Grub может загружаться первым, он загружается в загрузчик Windows, если Windows выбрана из списка. Чтобы запустить загрузчик Windows, он должен находиться в загрузочном разделе (Может ли кто-нибудь проверить это для меня? Я никогда не пытался удалить флаг загрузки при установке Windows 7 ...)

  2. SDA3 на самом деле является расширенным разделом. Ваш диск отформатирован как MBR , а не как GPT . Одним из ограничений является то, что MBR может иметь только до 4 основных разделов . Чтобы обойти это, вы можете использовать расширенный основной раздел, чтобы затем создать несколько меньших логических разделов внутри (получая более 4 разделов).

  3. Из-за ограничения MBR он не может создать 5-й основной раздел за пределами расширенного логического раздела . Это нормально. Если вы расширите расширенный раздел, то вы сможете создать новый раздел внутри него и использовать оставшуюся часть вашего диска.

  4. Со страниц справочника cfdisk :

Флаги могут быть Boot , который обозначает загрузочный раздел или NC , что означает «Не совместимо с DOS или OS / 2».

Канадский Люк ВОССТАНОВИТЬ МОНИКУ
источник
Нет проблем. Я публиковал один и тот же ответ (ы), и этот был единственным, который вы не поймали лучше меня. ;)
Ƭᴇcʜιᴇ007
3

Разделы с 1 по 4 условно являются «физическими» (они были единственным типом, доступным в те времена). Так что у тебя есть:

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

... sda1это физическое, Linux. sda2физически, опять Linux. sda3является логическим разделом, в котором могут находиться другие разделы (начиная с 5). Наконец sda4, раздел Windows, помеченный как загрузочный - я думаю, что только Windows заботится об этом больше. GRUB2 с радостью загрузит любой раздел, который вы пожелаете, но Windows хочет установить загрузочный раздел.

Теперь внутри логического раздела sda3, который cfdiskне отображается как таковой, есть эквивалент большего количества физических разделов. Только в этом случае sda5.

И поскольку он sda3переходит из сектора 1258M в сектор 1300M, но sda5использует их только до 1275M, сектора от 1275062272 до 1300236287 свободны (но могут быть выделены sda6).

Наконец, ваш sda4(последний возможный физический раздел - MBR содержит только четыре) не заполняется до конца диска. Оставляет около 116 Гб. Это пространство непригодно для использования, потому что вы не можете создать физический раздел, чтобы покрыть его (расширенный раздел sda3не может расти, потому что его экстент «заблокирован» sda4):

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

Решения для восстановления недоступного места

Боюсь, безболезненно. В зависимости от геометрии вы можете удалять sda4и комментировать ее границы. Затем sda3увеличьте, чтобы включить весь диск (то же начало, 1258291200, но конец до конца диска), либо удалите его и создайте заново с тем же началом и максимальным концом. Теперь вы можете создать раздел sda6внутри sda3и сделать так, чтобы он заканчивался на цилиндре непосредственно перед сектором 1300236288. Это займет свободное пространство, оставшееся в настоящий момент в существующем sda3. Наконец вы создаете раздел внутри sda3, и это будет sda7, сообщая системе, что он расширяется с 1300236288 до 1709836287 и имеет тип 7.

Если вы не отформатируете этот раздел, содержимое останется без изменений, и это будет действительный раздел Windows. это

Конечно, если что-то пойдет не так, вы потеряете все свои данные. Физические разделы (как в настоящее время Windows sda4) и физические разделы внутри логики (какими они будут sda7), не обязательно смешиваются; некоторые инструменты будут категорически отказываться создавать их. Я бы посоветовал сделать тест на виртуальном диске того же размера, созданном в разреженном файле (сам файл будет всего несколько гигабайт) или на внешнем диске.

Другой способ, возможно, более безопасный, состоит в том, чтобы удалить sda5(это просто обмен) и sda3переместить sda4параметры в sda3(это может означать удаление sda4и воссоздание sda3со старыми sda4параметрами), и это sda4освободит слот (и «дыру» в середине диска). Большинство BIOS позволяют использовать таблицы разделов вне последовательности. Опять же, это не должно требовать копирования. sda4теперь становится sda3и остается физическим разделом, поэтому его геометрия должна лучше соответствовать предположениям инструмента разделения.

Конечно, рекомендуемый и самый безопасный способ (и самый медленный) из всех - это сделать резервные копии всех разделов, переформатировать их все и восстановить их после того, как они правильно «переставят», с последним расширенным разделом и занимающим весь оставшийся жесткий диск. Это избавит от свободного места внутри sda3 и вернет недоступное место в конце, без риска (если резервное копирование выполнено правильно - проверьте его после резервного копирования. Однажды я сделал резервную копию на неисправном внешнем диске, который умер при восстановить. вообще не было забавно).

LSerni
источник
0

В дополнение к тому, что уже было сказано о значении всего этого, я думаю, что наиболее безболезненным решением было бы иметь пространство подкачки в большой области в конце и добавить пустое пространство в середине к вашему /home.

Для этого вам нужно

  • удалите файл подкачки, как только он не используется, а также расширенный раздел, содержащий его
  • расширить его, sda2чтобы включить в него полное пустое пространство (вам придется удалить и воссоздать его).
  • воссоздайте расширенный раздел, чтобы сидеть за ним, sda3и используйте его для хранения столько разделов, сколько вы хотите (ну, в определенных пределах).

Это легче всего сделать с cfdiskпомощью динамического управления расширенным разделом. Но позаботьтесь о том, чтобы он sda2оставался стартовым LBA, иначе вы потеряете его содержимое.

После увеличения размера раздела необходимо изменить размер файловой системы, чтобы использовать все пространство.

glglgl
источник