- Избавьтесь от сообщения «ресурс занят» на Mac OS X
- 2 ответов
- Question: Q: Disk Utility reports «resource busy» and can’t create an disk image
- Избавьтесь от сообщения «Resource Busy» в Mac OS X
- 2 ответа 2
- Using dd I’m getting a Resource Busy error
- JoshFink
- mikehardy
- Ryan813
- DrewKlassen
- sbohonos
- Sarthak Varshney
- sem49
- No_GT31
- Создание красивого образа .dmg для программы в [Mac] OS X
Избавьтесь от сообщения «ресурс занят» на Mac OS X
я пытаюсь восстановить утерянный HSF+ таблица разделов iMac, запустив i команда внутри sudo pdisk /dev/rdisk1 . Как только я попробую запустить i команда, я получаю сообщение об ошибке, говорящее о том, что ресурс занят:
pdisk: не удается открыть файл’/dev / rdisk1 ‘ для записи (ресурс занят)
я получаю тот же результат при использовании /dev/disk1 , /dev/rdisk2 и /dev/disk2 .
я также пытался бежать sudo gpt /dev/(r)disk(1-3) . Интересно, что я получаю только результат от /dev/rdisk3 :
Итак, я пытаюсь увидеть, что использует ресурс, запустив sudo lsof /dev/rdisk1 , а также sudo lsof /dev/disk1 . Ничего не появляется:
я также попытался отключить устройство, запустив sudo umount /dev/disk1 а также sudo umount /dev/rdisk1 . Я получаю сообщение о том, что устройства в данный момент нет монтируется:
вот список всех дисков, подключенных к компьютеру, выполнить sudo DiskUtil list :
/ dev / disk0 — диск компьютера, к которому подключен iMac.
/ dev / disk1 — жесткий диск iMac.
/ dev / disk2 — SSD iMac.
/ dev / disk3 — я не знаю, что это. Я бы предположил, что это комбинированный жесткий диск и SSD iMac.
/ dev / disk4 — внешний жесткий диск.
/ dev / disk5 — я понятия не имею, что это такое. Может быть утилиты для /dev / disk4?
iMac имеет fusion drive и /dev/disk1 — это жесткий диск. Я пробовал с SSD, /dev/disk2 , но я получаю то же самое результат.
iMac подключен к другому компьютеру через thunderbolt, и by удерживая t при запуске iMac на Macintosh HD отображается как внешнее устройство на другом компьютере.
как я могу избавиться от этого сообщения? Я попытался перезапустить iMac и компьютер, к которому он подключен.
2 ответов
во-первых, pdisk команда используется для изменения дисков, которые разбиты на разделы с помощью карты разделов Apple. Их используют только компьютеры Mac на базе PowerPC.
во-вторых, ваш umount команды выше не выполняются, так как /dev/disk1 и /dev/disk2 не смонтированы. Обычно монтируются только разделы (например, /dev / disk0s3), хотя в вашем случае у вас есть Fusion Drive. Вы абсолютно правы, что /dev/disk3 не «настоящий» диск. Это общая емкость /dev / disk1s2 и / dev / disk2s2. Если ввести umount /dev/disk3 , это должно сработать. Конечно, ничего не монтируется на /dev / disk1 или /dev / disk2, так что вам придется выпустить diskutil unmountdisk /dev/diskN для тех, кто. Это должно освободить их так gpt команда перестанет давать вам ресурс занят ошибка.
Fusion диски используют разделы Apple CoreStorage в качестве контейнеров, который является своего рода аналогом динамических дисков Microsoft. К сожалению, они затрудняют работу с разделами и занимают много дисков / разделов восстановление продуктов со стола.
Однако, помимо вышеуказанных проблем, я не совсем уверен, в чем проблема. Вы упоминаете, что таблица разделов потеряна, но вывод из diskutil list предполагает, что ваши таблицы разделов в порядке.
не могли бы вы подробнее рассказать о своей проблеме?
Источник
Question: Q: Disk Utility reports «resource busy» and can’t create an disk image
Just succesfully updated to Mountain Lion on my MBA and iMac. No problems. A very smooth proces.
But, on my iMac the Disk Utility are not able to create new images at all! I’m not sure if this relates directly to the update, as
DU works fine on the MBA.
I have tried to create a simple disk image from a folder, sparse bundle disk images and sparse disk images — with and without encryption.
They al gave this output from DU: «Unable to create «MYDiskImage.sparsebundle.» (Resource busy).
I understand from other postings on the web that others have experienced the same message from time to time, but have not seen a fix for it anywhere.
I can see the «disk iamge» in the DU window (left pane) but are not able to locate it with Finder or on the computer anywhere, but are even able to «repair the
disk image with DU, but then there is actually no disk image when trying to locate it. Very strange.
The DU log has this info:
1. Creating a sparsebundle
2012-08-01 07:46:16 +0200: Creating Image “MyDiskImage.sparsebundle”
2012-08-01 07:46:16 +0200: Initializing…
2012-08-01 07:46:16 +0200: Creating…
2012-08-01 07:46:27 +0200: Formatting…
2012-08-01 07:46:28 +0200: Finishing…
2012-08-01 07:46:29 +0200: Unable to create “MyDiskImage.sparsebundle.” (Resource busy)
2012-08-01 07:46:29 +0200:
2012-08-01 07:47:01 +0200: Verify and Repair volume “disk3s2”
2012-08-01 07:47:01 +0200: Starting repair tool:
2012-08-01 07:47:01 +0200: Checking file system2012-08-01 07:47:01 +0200: Checking Journaled HFS Plus volume.
2. Creating a disk image from a folder
2012-08-01 07:59:10 +0200: Creating Image “Parallels køb juli 2012.dmg”
2012-08-01 07:59:10 +0200: Initializing…
2012-08-01 07:59:11 +0200: Creating…
2012-08-01 07:59:20 +0200: Finishing…
2012-08-01 07:59:21 +0200: Unable to create “Parallels køb juli 2012.” (Resource busy)
Источник
Избавьтесь от сообщения «Resource Busy» в Mac OS X
Я пытаюсь восстановить потерянную таблицу разделов HSF+ iMac, выполнив команду i внутри sudo pdisk /dev/rdisk1 . Когда я пытаюсь выполнить команду i , я получаю сообщение об ошибке, в котором говорится, что ресурс занят:
pdisk: невозможно открыть файл ‘/dev/rdisk1’ для записи (ресурс занят)
Я получаю тот же результат при использовании /dev/disk1 , /dev/rdisk2 и /dev/disk2 .
Я также попытался запустить sudo gpt /dev/(r)disk(1-3) . Интересно, что я получаю результат только из /dev/rdisk3 :
Итак, я пытаюсь увидеть, что использует ресурс, запустив sudo lsof /dev/rdisk1 , а также sudo lsof /dev/disk1 . Ничего не появляется
Я также попытался размонтировать устройство, запустив sudo umount /dev/disk1 и sudo umount /dev/rdisk1 . Я получаю сообщение о том, что устройство в данный момент не подключено:
Вот список всех дисков, подключенных к компьютеру, найденных с помощью sudo DiskUtil list :
/dev/disk0 — диск компьютера, к которому подключен iMac.
/dev/disk1 — Жесткий диск iMac.
/dev/disk2 — твердотельный накопитель iMac.
/dev/disk3 — я не знаю, что это. Я бы предположил, что это комбинированный жесткий диск и твердотельный накопитель iMac.
/dev/disk4 — внешний жесткий диск.
/dev/disk5 — я понятия не имею, что это тоже. Может быть утилиты для /dev/disk4?
В iMac есть накопитель Fusion, а /dev/disk1 — это жесткий диск. Я пытался с SSD, /dev/disk2 , но я получаю тот же результат.
Я подключил iMac к другому компьютеру с помощью молнии, и, удерживая t, когда iMac запускался, Macintosh HD показывался как внешнее устройство на другом компьютере.
Как я могу избавиться от этого сообщения? Я попытался перезапустить iMac и компьютер, к которому он подключен.
2 ответа 2
Прежде всего, команда pdisk используется для изменения дисков, которые разбиты на разделы с помощью карты разделов Apple. Только Mac на базе PowerPC используют их.
Во-вторых, приведенные выше команды umount работают, потому что /dev /disk1 и /dev /disk2 не смонтированы. Обычно монтируются только разделы (например, /dev /disk0s3), хотя в вашем случае у вас есть Fusion Drive. Вы абсолютно правы, что /dev /disk3 не является «настоящим» диском. Это объединенная емкость /dev /disk1s2 и /dev /disk2s2. Если вы umount /dev/disk3 , это должно сработать. Конечно, ничего не монтируется в /dev /disk1 или /dev /disk2, поэтому вам придется выдать diskutil unmountdisk /dev/diskN для них. Это должно освободить их, чтобы команда gpt перестала выдавать ошибку об использовании ресурса.
Диски Fusion используют разделы Apple CoreStorage в качестве контейнеров, что является своего рода аналогом динамических дисков Microsoft. К сожалению, они затрудняют работу с разделами и убирают многие продукты восстановления дисков / разделов.
Однако, помимо вышеизложенных вопросов, я не совсем уверен, в чем проблема. Вы упоминаете, что таблица разделов потеряна, но вывод из diskutil list предполагает, что ваши таблицы разделов выглядят нормально.
Можете ли вы рассказать немного больше о проблеме, с которой вы столкнулись?
Источник
Using dd I’m getting a Resource Busy error
JoshFink
macrumors regular
Hello, I’m trying to restore an old Hard Drive image OS.dmg to a usb hard drive that I have.
I’m using the command:
dd if=/Users/Shared/OS.dmg of=/dev/disk5 bs=1m
dd: /dev/disk5: Resource busy
What would cause this error? I’m not sure why it’s «busy»
PS.. I get the exact same thing when i try to do it in DiskUtility
mikehardy
macrumors newbie
I just did this — what I did may work for you
In order to overwrite all the information on the disk, you have to make sure the mac OS isn’t using it first
Open the DiskUtility.app, and on your USB hard drive, unmount any of it’s partitions. Do not eject the USB hard drive.
Right click on the hard drive in the DiskUtility and get it’s Identifier from the Information tab.
Now take your image, and the identifier, and put it all together with something like this, on the command line in terminal:
dd if= of=/dev/
That worked for me putting the diskboot.img bootable Linux image file onto a USB hard drive that had the identifier disk1 by doing dd if=/Users/mike/diskboot.img of=/dev/disk1
Ryan813
macrumors newbie
DrewKlassen
macrumors newbie
sbohonos
macrumors newbie
Sarthak Varshney
macrumors newbie
I just did this — what I did may work for you
In order to overwrite all the information on the disk, you have to make sure the mac OS isn’t using it first
Open the DiskUtility.app, and on your USB hard drive, unmount any of it’s partitions. Do not eject the USB hard drive.
Right click on the hard drive in the DiskUtility and get it’s Identifier from the Information tab.
Now take your image, and the identifier, and put it all together with something like this, on the command line in terminal:
dd if= of=/dev/
That worked for me putting the diskboot.img bootable Linux image file onto a USB hard drive that had the identifier disk1 by doing dd if=/Users/mike/diskboot.img of=/dev/disk1
sem49
macrumors newbie
No_GT31
macrumors newbie
I just did this — what I did may work for you
In order to overwrite all the information on the disk, you have to make sure the mac OS isn’t using it first
Open the DiskUtility.app, and on your USB hard drive, unmount any of it’s partitions. Do not eject the USB hard drive.
Right click on the hard drive in the DiskUtility and get it’s Identifier from the Information tab.
Now take your image, and the identifier, and put it all together with something like this, on the command line in terminal:
dd if= of=/dev/
That worked for me putting the diskboot.img bootable Linux image file onto a USB hard drive that had the identifier disk1 by doing dd if=/Users/mike/diskboot.img of=/dev/disk1
Thank you!! it works for me!!
i had to use «sudo diskutil unmount /dev/diskXsX» and then my dd worked!
Источник
Создание красивого образа .dmg для программы в [Mac] OS X
Приветствую достопочтенных жителей Хабра!
Сегодня я расскажу вам о том, как красиво преподнести пользователю инсталлятор своей программы. Наверняка каждый, кто пользуется не только программами из AppStore, сталкивался с красивыми образами диска .dmg, как вот у Адиума, к примеру. Такой образ представляет из себя, так сказать, интерактивный инсталлятор, в котором дана чёткая подсказка: перетащи значок вот сюда. Всё предельно понятно и просто.
Конечно, для бывалого маковода и zip-архив сгодится, но ведь все любят, чтоб было красиво и удобно. Так что мы с вами, дорогие читатели, озаботимся сегодня созданием такого вот красивого образа диска для своей (ну или чужой) программы.
Можно, конечно, проделать это всё вручную, но это не_наш_метод™, так что мы будем писать shell-скрипт для автоматизации сего процесса. Автоматизация нам так же пригодится в случае ввода в эксплуатацию билд-сервера, тогда этот сервер будет не только собирать программу из исходников, но и делать образ диска для дистрибьюции.
Если Вам не нужно знать как работает такой скрипт, а нужен лишь инструмент — в конце имеется ссылка на весьма универсальный скрипт, готовый к применению.
План действий вкратце:
- Скопировать бандл во временную директорию
- Создать образ диска из временной директории, доступный для чтения и записи
- Примонтровать полученный образ
- Кастомизировать внешний вид образа с помощью AppleScript: создать симлинк для /Applications, задать фон и расположение элементов
- Задать иконку для образа диска
- Отмонтировать образ
- Конвертировать образ в сжатый ридонли
- Готово! Можно выкладывать на сайт или в Sparkle-каст.
ВАЖНО! Скрипт (точнее, его часть, задействующая AppleScript) не будет работать должным образом, если установлен TotalFinder (или аналогичная штука), и это может привести к непредсказуемым последствиям! Серьёзно.
Теперь по порядку по всем пунктам. Ссылка на готовый скрипт в конце статьи.
Для начала нам надо определить что будем упаковывать и какое имя образа получим в конце. Для этого в скрипте пишем так:
Здесь мы задаём имя бандла, который будем паковать, и читаем из него версию и билд программы с помощью утилиты PlistBuddy и устанавливаем их как суффикс для имени файла будущего образа диска. Имя же образа при монтировании мы задаём просто как имя бандла без расширения.
Для создания временного образа диска используем программу hdiutil, вызвав её со следующими параметрами
Здесь параметры TMP_DIR , VOL_NAME и DMG_NAME_TMP — временная директория, имя образа (которое будет отображаться при монтировании) и имя временного .dmg файла соответственно. Параметр -format UDRW указывает на тип образа: UDIF образ для чтения и записи. Возможность записи на диск нам нужна для кастомизации внешнего вида примонтированного образа. Параметр -ov указывает утилите перезаписать образ, если вдруг мы его не удалили в прошлый раз.
Теперь монтируем полученный образ (и сохраняем имя устройства для последующего использования):
Здесь всё довольно просто: аттачим с правами на чтение и запись, автоматически окно файндера не открываем, а затем получаем имя типа /dev/disk2 с помощью egrep, sed и awk парся вывод hdiutil’а.
Теперь скопируем на образ фоновую картинку и иконку, которые лежат, к примеру, в ресурсах нашего бандла (хотя, конечно, их можно взять и из любого другого места):
Далее, нам надо подмонтированный образ кастомизировать, сделать это можно через Finder вручную, но мы поступим хитрее: заставим Finder сделать всё автоматически через AppleScript. Для вызова таких скриптов из шелла есть утилита osascript, которой на вход подадим такую заготовку:
Разумеется, вместо VOL_NAME и прочего наш shell-скрипт подставит заранее заготовленные строки. Данный AppleScript говорит файндеру открыть наш подмонтированный диск, задать ему нужные параметры отображения: убрать строку адреса и статуса, задать вид «иконки», задать размеры окна, размер иконок. Все эти параметры будут сохранены в файле .DS_Store. Далее мы задаём фоновую картинку, скопированную ранее. Затем — создаём симлинк (алиас в терминах AS) для /Applications, переоткрываем окно для применения изменений. Теперь устанавливаем положение иконок программы и созданного симлинка, обновляем и спим 5 секунд для надёжности.
Теперь установим иконку для образа через утилиту SetFile:
Далее, устанавливаем нужные права для образа диска, синхронизируемся (два раза для надёжности) и извлекаем образ:
Всё, теперь можно делать финальный образ диска!
Здесь мы с помощью hdiutil конвертируем временный образ в формат UDZO (UDIF сжатый) с уровнем компрессии 9 (лучшая). И на выходе получаем образ диска для дистрибьюции, имеющий привлекательный внешний вид!
Полный скрипт включён в репозиторий на гитхабе. Замечу, что в полной версии скрипта очень много возможных входных параметров (парсинг которых сильно увеличивает его размер), хардкода нет совсем (ну кроме дефолтных параметров). Ну а картинка, приведённая в начале поста, получается следующим вызовом моего скрипта:
Что ж, теперь Вы можете написать свой скрипт для таких целей или же использовать мой, достаточно универсальный. Успешных проектов!
Источник