Изменение размера раздела NTFS в направлении начала диска без перемещения данных

1082
Kozuch

Скажем, у меня есть воображаемый жесткий диск на 200 ГБ (не SSD) с двумя разделами на 100 ГБ (A - первый, B - второй). Раздел А пуст. Раздел B наполовину полон. Я хочу удалить раздел A и изменить размер раздела B до самого начала диска, чтобы у B было 200 ГБ.

Мой вопрос следующий - возможно ли изменить размер B, не перемещая содержимое B в начало диска? Может ли операция изменения размера пройти быстро? Я уже изменил размер раздела «к концу диска» (например, удалив B и изменив размер A для всего диска в этом случае), и это всегда было очень быстро. Но в моем случае я боюсь, что все данные должны быть перемещены или, как минимум, их местоположение обновлено в MBR, так как начальное местоположение раздела изменится.

Я хочу использовать некоторые свободно доступные программы для Windows / Linux.

РЕДАКТИРОВАТЬ: диск используется только для данных, система не устанавливает разделов.

-1
Файловые системы обычно имеют свою информацию в начале раздела. Если вы просто расширите раздел влево, сектора вашей файловой системы будут находиться в середине раздела. Ваше ядро, вероятно, не сможет понять это без специального драйвера файловой системы. jiggunjer 7 лет назад 0
Если это SSD, перемещение 100 ГБ данных вообще не займет времени. Darren 7 лет назад 0

2 ответа на вопрос

1
Binarus

Я никоим образом не эксперт по NTFS, но я хотел бы дать некоторые общие рекомендации.

1) Я видел много вещей, касающихся программного обеспечения для ПК, но никогда не слышал о приложении, которое могло бы расширить разделы NTFS до начала диска без перемещения данных.

2) Существует ли такое приложение или нет: Вы абсолютно не должны делать подобные вещи, не сделав полную резервную копию диска раньше.

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

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

В вашем случае я бы сделал следующее:

Минимальное (плохое) решение

а) Удалить раздел А

b) Создайте заново раздел A с размером, который оставляет достаточно места для раздела B (после этого шага между разделом A и разделом B будет некоторое пространство)

c) Скопируйте все данные из раздела B в раздел A (это может завершиться ошибкой, если раздел A сейчас слишком мал; в данном случае это решение на самом деле не одно)

c) Удалить раздел B

d) Создайте заново раздел B с увеличенным размером (после этого шага между разделом A и разделом B не останется места)

e) Скопируйте все данные из раздела A в раздел B

Лучшее решение

а) Сделайте полную резервную копию хотя бы раздела B

б) Удалить оба раздела

c) Воссоздайте оба раздела с размерами по мере необходимости

г) Восстановите резервную копию старого раздела B в новый раздел B

Хорошее решение

а) купить новый диск

б) Разметить новый диск, создавая разделы с размерами по мере необходимости

c) Сделайте полную резервную копию раздела B старого диска

г) Восстановите эту резервную копию в разделе B нового диска

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

Так почему первое решение плохо?

Во-первых, как вы, наверное, знаете, NTFS довольно сложна. Есть такие вещи, как ACL, жесткие ссылки, символические ссылки, ярлыки, разреженные файлы и альтернативные потоки, чтобы назвать несколько из них. Черт, даже встроенный проводник Windows показывает неправильные размеры каталогов, если есть жесткие ссылки! Лично я знаю ровно две программы, которые надежно копируют данные без потери такой информации; оба являются командной строкой, и их использование довольно сложно понять. Я определенно рекомендую их только для опытных пользователей.

Во-вторых, если ваш раздел B находится там, где находится ваша ОС, простое копирование его данных (даже с одним из упомянутых мной инструментов) в раздел A не приведет к загрузке ОС из раздела A.

Но даже это плохое решение сократит время, необходимое для операций с высоким риском (т.е. изменение размера раздела) до разумного уровня.

Некоторые дополнительные заметки:

  • Это мои личные мнения и лучшие практики, которые я разработал за эти годы (я делал такие вещи не один раз)

  • Говоря «полная резервная копия», я, конечно, имею в виду резервные копии по типу изображения (в отличие от файловых резервных копий)

  • Существуют отличные бесплатные и коммерческие инструменты для создания резервных копий на основе изображений. Например, ищите dd, CloneZilla или TrueImage.

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

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

  • И, наконец, еще раз, подумайте об этом: вы можете выполнять резервное копирование в одночасье, в чем проблема со временем, которое занимает по сравнению с потерей ценных личных данных (например, фотографий, которые вы сделали, когда были на вершине горы Эверест)? А если у вас нет денег на новый диск, вы можете спросить друга, позволит ли он вам использовать его внешний диск в течение дня или двух ...

Спасибо за Ваш ответ. Ни на одном из разделов не установлена ​​система (Windows и т. Д.). Kozuch 7 лет назад 0
В моем ответе было несколько опечаток, и в моем первом решении я проигнорировал, что вы, вероятно, хотите сохранить * оба * раздела. Я обновил свой ответ. Binarus 7 лет назад 0
1
jiggunjer

Использование gparted на живой ОС:

  • Удалить А

  • Сделайте B как можно меньше, чтобы сэкономить время.

  • Скопируйте и вставьте B в свободное пространство, начиная с первого сектора. Это сохранит UUID раздела на случай, если загрузчик его использует. Обратите внимание, что вы не перезаписываете свой загрузчик, возможно, оставьте немного свободного места в начале.
  • Удалить B и расширить новый B, чтобы покрыть остальную часть диска.
  • В зависимости от того, как установлен ваш загрузчик, вам может потребоваться обновить его. Установка GRUB по умолчанию должна работать без обновления.
Диск используется только для данных, система не устанавливает разделы. Kozuch 7 лет назад 0
Тогда вам не нужно беспокоиться о загрузчике. Тем не менее, необходимо переместить файловую систему влево, хотя. Gparted копирование и вставка работает довольно быстро. Вы также можете использовать обычную ОС Linux вместо live. Просто сначала отключите цель. jiggunjer 7 лет назад 0