3

Я использую ноутбук на базе Linux, и для того, чтобы загрузить в него несколько дистрибутивов, я создал расширенный раздел, содержащий несколько логических разделов с помощью GParted. Теперь, после довольно долгого времени с этой настройкой, я передумал из-за нехватки места для моего раздела данных. Теперь я хочу оставить один дистрибутив, как обычно, и, в конце концов, иметь некоторые другие операционные системы, хранящиеся во внешних опорах, для подключения и использования, если я захочу.

Очевидно, что этот раздел, который я хочу сохранить (и немного увеличить), просто логичен внутри расширенного раздела, который я хочу сохранить. Что касается числа, с которым я в порядке, то есть у меня есть большой расширенный выделенный дистрибутив, раздел подкачки и данных, так что есть место для другого основного, прежде чем я удалю расширенный, но я не знаю, как удалить его без Касаясь логики, я не хочу переустанавливать систему, теряя все изменения и настройки, и я не хочу оставлять расширенный раздел только для логики.

Как я могу сделать? Должен ли я создать новый первичный файл, скопировать в него логический контент и затем удалить все? Будет ли система загружаться и поддерживать все функции, которые она имеет сейчас? Или есть способ преобразовать расширенный в первичный, если он содержит только один логический? Или я могу напрямую переместить логическое расширение из расширенного, превратив его в первичное? Или опять я ввернут?

3 ответа3

4

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

Пост такой: Конвертировать через терминал

Если бы я нашел способ поиска решения этой проблемы ранее, я бы пощадил один бесполезный пост, но, возможно, некоторые люди оказались бы в моей ситуации, поэтому я возобновлю решение. Короче говоря, нам нужен sfdisk. Первый забег

sudo sfdisk -d /dev /sdX

чтобы получить подробную карту вашего диска (очевидно, X обозначает букву устройства, запустите sudo fdisk -l, чтобы получить список дисков, если вы не знаете код своего диска).
Просто скопируйте это в текстовый файл и вручную отредактируйте таблицу разделов в ту, которая вам нужна. Будьте осторожны, шанс все испортить довольно высок. Я тестировал на флешке раньше и он просто работает.

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

Скажем, например, у вас есть эта простая карта: одна логическая схема в расширенном, расположенная в самом начале, своп и огромный раздел данных.

sudo sfdisk -d /dev /sda

таблица разделов /dev /sda
единица измерения: секторы

/dev /sda1: начало = 2048, размер = 80000000, идентификатор = f
/dev /sda2: start = 80002048, размер = 800000, Id = 82
/dev /sda3: start = 80802048, размер = 800000000, Id = 83
/dev /sda4: start = 0, size = 0, Id = 0
/dev /sda5: start = 4096, размер = 79997952, Id = 83

Числа просто составлены мной, чтобы было легче увидеть, как это работает. Как видите, максимальное число "истинных" возможных разделов равно четырем, что означает, что каждое логическое число будет начинаться с пяти, даже если у вас меньше четырех основных цветов. Кроме того, /dev /sda4 будет отображаться как тип 0, начиная с 0 и большого 0, также, если у вас есть только три раздела и нет логики. Порог четырех основных цветов всегда отображается. Идентификатор 83 - это Linux ext раздел, а 82 - Linux swap (Список типов разделов с идентификаторами). Теперь, если мы хотим сохранить эту точную карту за исключением того, что логический раздел заменяет расширенный на логический, мы просто вставляем точный вывод полученной команды (из "таблицы разделов") и модифицируем ее следующим образом:

таблица разделов /dev /sda
единица измерения: секторы

/dev /sda1: start = 4096, размер = 79997952, Id = 83
/dev /sda2: start = 80002048, размер = 800000, Id = 82
/dev /sda3: start = 80802048, размер = 800000000, Id = 83
/dev /sda4: start = 0, size = 0, Id = 0

Все, что мы сделали, это поместили наш логический, с его исходными пределами (он начинается немного позже и заканчивается немного раньше, чем расширенный, вы должны поставить свои собственные) вместо нашего расширенного (теперь он занимает позицию с номером <5, зарезервировано для расширенных или основных) с ID 83 (исходная файловая система Linux, окончательно определяющая ее как основную). Таким образом, когда мы импортируем новую таблицу, порция, содержащая все файлы нашей логики, будет распознана как часть первичной, но ни один из них не будет удален, так что это просто идеально. Чтобы импортировать нашу новую конфигурацию, сохраните наш текстовый файл и выполните следующую команду:

sudo sfdisk --force /dev /sdX <путь / к / файлу / yournewpartitiontable.txt

ВАЖНО: делайте это в режиме реального времени, это принципиально, ваш жесткий диск не используется и все разделы отключены. Если диск, который вы изменяете, не является системным (например, дополнительный жесткий диск или внешний жесткий диск или USB-накопитель /SD-карта), тогда хорошо, просто убедитесь, что все его разделы отключены.

GParted метод:

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

GParted имеет функцию копирования, которая создает точную копию раздела в достаточно большой свободный блок. Все, что я делал, это копировал свою логическую структуру за пределы расширенного, а затем, убедившись, что все работает так же, как в моем исходном разделе, удаляю логическое и расширенное и перемещаю все вместо них, расширяя мой раздел данных. Этот метод безопаснее, так как он не на 100% ручной, но и намного дольше (я сделал так, чтобы мой раздел данных занимал левое свободное пространство, увеличив его с 380 до 440 ГиБ, что потребовало 5 часов), и, возможно, вы стали более напряженными на жестком диске, как вы собираемся сделать больше действий вместо прямой модификации таблицы разделов и символической информации. Но опять-таки, это также аккуратнее, так как вы выполняете все в одной операции, занимая оставшиеся свободные места и заставляя разделы слипаться без расточительного пространства между ними (с помощью sfdisk вы дадите новому основному элементу старые логические границы, что означает запуск после и окончание до оставляя неиспользованное пространство между ними).

Надеюсь, это поможет, ура!

0

Просто используйте начальный и конечный адреса LBA логического раздела и введите их как начало и конец одного из четырех слотов основного раздела в MBR.

Если это SSD, просто надейтесь, что он выровнен по нескольким из 8 секторов LBA. SSD живут дольше, когда все выровнено как минимум 4096B. Еще лучше на 128 КБ.

0

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

Если вы действительно настроены на это, я рекомендую мою программу FixParts , которая может преобразовывать основные цвета в логические и наоборот, в рамках ограничений, наложенных системой MBR и вашим текущим расположением разделов. Из того, что вы сказали, я не ожидаю никаких проблем с этим преобразованием. Процедура будет что-то вроде:

  1. Запустить FixParts на диске
  2. Введите p чтобы просмотреть таблицу разделов и убедиться, что FixParts показывает все, что должно
  3. Введите r чтобы изменить ваш логический на основной. (Вам будет предложено указать номер раздела.)
  4. Введите p чтобы снова просмотреть таблицу разделов, чтобы убедиться, что все в порядке.
  5. Введите w чтобы сохранить изменения.

Хотя запись начального и конечного секторов логического раздела, удаление как его, так и содержащего его расширенного раздела, а затем повторное создание раздела вручную с помощью fdisk или parted может работать, это дополнительная работа, которая предоставляет дополнительные возможности для человеческой ошибки; поэтому я бы не стал так поступать - не тогда, когда существует инструмент, позволяющий сделать это автоматически без возможности опровергнуть опечатку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .