macOS не позволяет изменить последовательность разделов из командной строки!

Это список дисков для моего iMac.

введите описание изображения здесь

Я пытаюсь объединить разделы macOS и macOS 2 с помощью diskutil mergePartitions, теперь проблема заключается в выполнении этой команды. macOS сохранит данные в первом разделе, которым является macOS, и сотрет все между первым и последним разделом (включая последний раздел), теперь последний раздел — macOS 2.

Я хочу сохранить последний раздел, который является macOS 2, и удалить все остальные разделы, поэтому я подумал, почему бы не включить последний раздел в качестве первого раздела (на котором я хочу сохранить данные) и включить первый раздел в последний параметр, который будет удален.

Вот где возникает проблема: macOS не позволяет мне изменить последовательность разделов

Итак, я застрял в объединении разделов из командной строки

Я не хочу использовать дисковую утилиту для объединения разделов, потому что в прошлый раз, когда я использовал ее для объединения разделов, были созданы некоторые свободные места, которые не исчезали до тех пор, пока не было выполнено полное форматирование диска!

Еще одна вещь, macOS — это первый том на диске, поэтому его удаление из сумеречной утилиты с помощью параметра раздела не произойдет.

Ответы (2)

Вы не можете расширить disk0s4, чтобы уменьшить количество блоков с помощью встроенных инструментов! Чтобы «расширить» disk0s4, вам нужно будет удалить disk0s2 , добавить новый раздел того же размера и типа, что и disk0s4, сразу после disk0s1 все с , gptdisk0s4 ddдо disk0s2 , удалить disk0s3 и disk0s4 с помощью gptи, наконец, расширить disk0s2 с помощью diskutilв нераспределенное пространство между disk0s2 и диск0s5.

Вместо последних двух шагов вы также можете использовать diskutil mergePartitions ...команду.

Все это загружалось либо в режиме восстановления Интернета, либо на внешнем диске с установленной macOS.


  • Загрузитесь в режиме восстановления через Интернет или на внешний загрузочный диск (если вы не являетесь суперпользователем, вы должны добавить sudoкоманду gpt ...и dd ...в начало).
  • Получите обзор и проверьте диск и тома (при необходимости отремонтируйте):

    diskutil verifyDisk disk0
    diskutil verifyVolume disk0s2
    diskutil verifyVolume disk0s4
    diskutil list
    gpt -r show disk0
    
  • Удалить disk0s2:

    diskutil umountDisk disk0
    gpt remove -i 2 disk0
    
  • добавить раздел того же размера, что и disk0s3

    diskutil umountDisk disk0
    gpt add -i 2 -b 409640 -s 485642672 -t 48465300-0000-11AA-AA11-00306543ECAC disk0
    
  • скопировать disk0s4 в disk0s2:

    diskutil umountDisk disk0
    dd if=/dev/disk0s4 of=/dev/disk0s2 bs=4m
    
  • объединить disk0s2-disk0s4 и переименовать macOS 2 в macOS :

    diskutil mergePartitions HFS+ "macOS" disk0s2 disk0s4 
    
Я вставлю вывод команды gpt, чтобы лучше понять шаги. Я в замешательстве и не хочу ничего удалять в замешательстве!
Пожалуйста, вставьте его как текст (не скриншот)!
Вот вывод pastebin.com/ud17Ribf
После всего слияния, когда я загружаюсь в ОС, меня встречает значок группы и пустое диалоговое окно имени пользователя и пароля. Я не знаю, что вводить!
Ваше старое имя пользователя и пароль от macOS 2?!
В обоих моих разделах была macOS с включенным пользователем root! У обоих были разные имена пользователей и пароли, я ввожу и пароли, и имена пользователей, и ничего не принимается!
Затем «root» и ваш пароль root
Я печатаю это, но macOS не принимает это, и я не вижу аватар по умолчанию, который у меня был для моего имени пользователя, вместо этого есть значок групп и пользователей.
Рут принят!
Но я не вижу свои файлы, и все мои пользовательские настройки были возвращены к настройкам по умолчанию!

Поскольку тома примерно одинакового размера, вы можете использовать приложение Дисковой утилиты, чтобы «Восстановить» том macOSиз macOS 2тома. Вы в основном будете дублировать файлы macOS 2. Затем вы можете удалить disk0s4и расширить disk0s2, чтобы восстановить свободное место.

Все эти операции можно выполнить с помощью приложения «Дисковая утилита».

Если вы хотите использовать командную строку, то вот команда для клонирования тома с надписью «macOS 2».

sudo asr restore --source "/Volumes/macOS 2" --target /Volumes/macOS --erase

Примечание. Приведенная выше команда также клонирует /dev/disk0s5файлы /dev/disk0s3.

Команда для удаления /dev/disk0s4и расширения /dev/disk0s2приведена ниже.

diskutil mergePartitions FREE "" disk0s2 disk0s4  

Примечание. Приведенная выше команда также удаляет /dev/disk0s5и перемещает /dev/disk0s3под расширенный файл /dev/disk0s2.

Операция клонирования/восстановления может быть выполнена при загрузке с /dev/disk0s5. Операция слияния может быть выполнена при загрузке в /dev/disk0s2.

Я бы очень хотел знать, как это сделать из самой Дисковой утилиты. Я не вижу никакого очевидного пути, кроме создания образа диска второго тома и восстановления его на первый.
Неважно, как только я загрузился в режиме восстановления, я вижу, что вы можете восстановить один раздел прямо из другого. Очень круто!