Введение
Управление дисками в macOS через графический интерфейс (Дисковая утилита) удобно для большинства задач. Однако терминал предлагает гораздо больше контроля, особенно при автоматизации, удаленной работе или когда графический интерфейс недоступен. В этом руководстве вы узнаете, как использовать встроенные утилиты командной строки для работы с дисками: от простой проверки свободного места до форматирования и создания разделов.
Все команды работают на современных версиях macOS (Monterey, Ventura, Sonoma). Внимание: некоторые команды, особенно diskutil eraseDisk, безвозвратно удаляют данные. Всегда проверяйте идентификатор диска перед выполнением опасных операций.
Основные команды для работы с дисками
macOS предоставляет несколько ключевых утилит. Вот самые важные.
diskutil: швейцарский нож
diskutil — основная утилита для управления дисками и разделами. Она заменяет многие функции Дисковой утилиты.
Основные подкоманды:
diskutil list— показать все диски и разделы.diskutil info /dev/diskX— подробная информация о диске.diskutil mount /dev/diskXsY— смонтировать раздел.diskutil unmount /dev/diskXsY— размонтировать раздел.diskutil eraseDisk Формат Имя /dev/diskX— отформатировать весь диск.diskutil partitionDisk /dev/diskX Формат Имя ...— создать разделы.
df и du: проверка использования места
df(disk free) показывает свободное и занятое место на смонтированных файловых системах.df -h— в человеко-читаемом формате (ГБ, МБ).df -i— показывает использование inodes (полезно при ошибке "No space left on device" хотя место есть).
du(disk usage) оценивает использование места файлами и директориями.du -sh /путь/к/папке— суммарный размер папки в читаемом виде.du -h --max-depth=1 /— размер каждой папки в корне (требует sudo для некоторых системных папок).
mount и umount: управление монтированием
mount— показать все смонтированные файловые системы (аналогdf).umount /dev/diskXsY— размонтировать раздел (устаревший синтаксис, лучшеdiskutil unmount).
Другие полезные команды
ls /Volumes— просмотр смонтированных томов (внешних дисков) как папок.diskutil verifyDisk /dev/diskX— проверка диска на ошибки (аналог "Первая помощь").sudo fdisk -l— список всех разделов (требует пароль, показывает и не-APFS разделы).
Практические примеры
Просмотр всех дисков и разделов
diskutil list
Вывод будет примерно таким:
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *512.1 GB disk0
1: EFEFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 511.8 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +511.8 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 465.3 GB disk1s1
2: APFS Volume Preboot 52.2 MB disk1s2
3: APFS Volume Recovery 528.7 MB disk1s3
4: APFS Volume VM 4.2 GB disk1s4
Обратите внимание на идентификаторы: disk0 — физический диск, disk1 — APFS-контейнер, disk1s1 — том внутри контейнера.
Проверка свободного места на основном диске
df -h /
Пример вывода:
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s1 466G 420G 46G 91% 1000000 1000000000 0% /
Здесь видно, что на основном разделе (Macintosh HD) свободно 46 ГБ из 466 ГБ.
Форматирование внешнего диска
Предупреждение: все данные на диске будут удалены!
- Подключите внешний диск.
- Узнайте его идентификатор:
diskutil list. Пусть этоdisk2. - Выполните форматирование (например, в exFAT для совместимости с Windows и macOS):
diskutil eraseDisk exFAT MyExternalDisk /dev/disk2
После завершения диск появится как MyExternalDisk в /Volumes.
Создание нового раздела на диске
Если у вас есть свободное место на диске (например, disk2), вы можете создать новый раздел:
diskutil partitionDisk /dev/disk2 GPT JHFS+ NewPartition 100g
Эта команда:
- Использует схему GPT.
- Создает один раздел в формате JHFS+ (macOS расширенный) размером 100 ГБ с именем "NewPartition".
- Остальное место останется неразмеченным (можно создать еще разделы).
Монтирование и размонтирование дисков
Если диск не смонтировался автоматически:
diskutil mount /dev/disk2s1
Для безопасного извлечения (размонтирования) перед отключением:
diskutil unmount /dev/disk2s1
⚠️ Важно: никогда не отключайте внешний диск, не размонтировав его через
diskutil unmountили через Finder (правый клик → "Из eject"). Это может привести к потере данных.
Важные предупреждения
- Проверяйте идентификатор диска (
diskutil list) перед любой операцией erase или partition. Ошибка в идентификаторе (например,disk0вместоdisk2) может привести к полной потере данных на системном диске. - При форматировании в APFS используйте
APFS(илиAPFS (Encrypted)для шифрования). Для совместимости с более старыми macOS используйтеJHFS+. - Команды, требующие прав суперпользователя (например,
diskutil verifyDiskна системном диске), запросят пароль. Вводите пароль администратора. df -hпоказывает только смонтированные файловые системы. Если диск подключен, но не смонтирован, его не будет в выводе. Используйтеdiskutil listдля проверки.
::in-article-ad
::
Автоматизация рутинных задач
Терминал позволяет создавать скрипты для регулярных операций. Например, скрипт для проверки свободного места на всех дисках и отправки уведомления, если место заканчивается:
#!/bin/bash
# check_disk_space.sh
THRESHOLD=10 # процент свободного места, при котором выводить предупреждение
df -h | grep -v Filesystem | while read output; do
usage=$(echo $output | awk '{print $5}' | cut -d'%' -f1)
partition=$(echo $output | awk '{print $6}')
if [ $usage -ge $THRESHOLD ]; then
echo "Предупреждение: на разделе $partition осталось только $usage% свободного места."
fi
done
Сохраните как check_disk_space.sh, дайте права на выполнение (chmod +x check_disk_space.sh) и запускайте регулярно через cron или launchd.
Что дальше?
После освоения базовых команд вы можете:
- Изучить
man diskutilдля полного описания всех опций. - Попробовать
diskutil cs(CoreStorage) для управления логическими томами (если используете FileVault или старые диски). - Использовать
hdiutilдля работы с образом диска (создание, монтирование .dmg файлов). - Написать более сложные скрипты для резервного копирования или мониторинга.
Помните: с большой мощью приходит большая ответственность. Всегда делайте резервные копии важных данных перед операциями с дисками.