Mac OS X 10.4: неразрушающее увеличение раздела HFS+
У меня MacBook под управлением OS X 10.4.11. Некоторое время назад я сократил свой основной раздел жесткого диска для двойной загрузки с Linux, но теперь у меня заканчивается свободное пространство на разделе Macintosh, и я хотел бы удалить раздел Linux и восстановить раздел Macintosh до его первоначального размера, Мне удалось удалить раздел Linux, но я не могу слить свободное пространство обратно в раздел Macintosh. Первоначально я использовал GParted для сокращения раздела, но я не могу использовать GParted для восстановления раздела, потому что GParted не может увеличить разделы HFS+.
Кто-нибудь знает, как я могу восстановить свой раздел HFS+ до его первоначального размера, не теряя своих данных и не тратя деньги на коммерческий продукт?
Если я попытаюсь использовать diskutil чтобы изменить размер раздела (при загрузке с установочного DVD OS X), я получаю следующее:
# diskutil resizeVolume disk0s2 119690149888BStarted resizing on disk disk0s2 Macintosh HDVerifyingResizing encountered error No space left on device (28) on disk
Значение 119690149888 байтов было указано как максимальный размер в выходных данных команды diskutil resizeVolume disk0s2 limits,
Другие инструкции о том, что я хочу сделать, я нашел на http://wiki.onmac.net/index.php/Triple_Boot_via_BootCamp, но для этого требуется Boot Camp, который больше не доступен для OS X 10.4.
(Это почти та же проблема, что и в вопросе 50317 "Изменение размера раздела HFS", но в Mac OS X 10.4 приложение Дисковой утилиты не может изменить размер разделов неразрушающим образом. Когда я пытаюсь переразбить раздел, он предупреждает, что все данные будут потеряны.)
1 ответ
Может ли GParted переписать карту разделов (удалить раздел linux, а затем изменить размер оставшегося раздела HFS+), не пытаясь увеличить файловую систему HFS+? Если так, то вы можете использовать diskutil увеличить файловую систему HFS+, чтобы она соответствовала границам нового раздела.
Прежде чем попробовать это (или даже использовать какое-либо коммерческое программное обеспечение), вы должны убедиться, что у вас есть полная резервная копия (чтобы вы могли просто деструктивно восстановить раздел с помощью Дисковой утилиты и восстановить его из резервной копии, а также получить "бесплатную" дефрагментацию для твои неприятности).
TL; DR: Переместите весь раздел влево с помощью
ddили жеgparted. Тогда вы сможете увеличить его.
Сейчас 2020 год, и diskutil (и его графический интерфейс) остаются прежними, когда он пытается обрабатывать изменение размера и прочее. Единственное правило, которого он придерживается, - он никогда не перемещается туда, где начинается раздел. В следствии:
- максимальный размер изменения размера ограничен тем, где вы начинаете свой раздел
- когда вы "разбиваете" раздел, новые всегда добавляются после исходного
К счастью, переместить начало раздела несложно: вы просто копируете данные, не зная ничего о файловой системе. Именно так
gpartedобрабатывает ходы. После того, как вы переместите начало раздела и соответствующим образом скорректируете таблицу разделов, вы сможете изменить размер как обычно.
В моем конкретном случае я сожалел о преобразовании в APFS на очень громком жестком диске 10 ТБ и пытался вернуться к HFS+. Я сделал следующее, в основном с помощью графического интерфейса Disk Utility:
- Сжать раздел APFS ("P1") до минимальных 2,23 ТБ, разрешенных для моей группы файлов.
- Сделайте остальное разделом HFS+ ("P2") и скопируйте туда все.
- Уменьшите размер раздела HFS+, и, к счастью, он составил всего 2,18 ТБ. Это создает третий раздел HFS+ ("P3").
- Удалите раздел APFS (P1), отформатировав его в HFS+.
- Поскольку P2 меньше, чем P1, я могу просто
dd if=/dev/rdisk3s2 of=/dev/rdisk3s1 bs=$((128 * (1 << 20))чтобы скопировать его туда, где находится P1. - Теперь, когда все снова в P1, я могу просто удалить P2 и P3 с помощью кнопки раздела. Это автоматически увеличивает размер P1 до полного размера 10 ТБ минус (2,23 ТБ - 2,18 ТБ). Это связано с тем, что diskutil не видит неиспользуемого пространства ни одним из разделов (я знаю, что это глупо).
- Зажечь
sudo gdisk /dev/rdisk3, Нажмитеnдля нового раздела нажмите enter трижды, чтобы восстановить значения по умолчанию, и нажмитеwзаписать в раздел. sudo diskutil eject /dev/disk3, а затем снова откройте приложение Дисковые утилиты. Выполните операцию с разделом, чтобы удалить только что созданный мини-раздел, чтобы освободить это пространство.
Возможно, вам не так повезло, что у вас достаточно места для хранения двух копий раздела на диске, поэтому gparted будет вашим другом. Конечно, вы можете вручную подсчитать сектора и выполнить
dd плюс
gdisk, но считать мне... тяжело. Переместить раздел вправо с помощью dd будет еще сложнее, так как вам нужно копировать в обратном направлении.
Почему Apple не делает что-то подобное? Как бы легко ни звучало, сказать, что Apple не заботится о реализации глупой медленной функции,
partedребята из GNU сделали то же самое, когда столкнулись с некоторыми осложнениями. Проблема, похоже, в том, что они хотят изменять размер с перемещением, а изменение размера требует специфических для fs знаний. Ну, это является более эффективным, чтобы сократить до переезда в конце концов...