Uuid mac os как изменить

Как изменить UUID Тома в Mac OS X 10.6?

кто-нибудь знает, как изменить UUID Тома? Фон для этого вопроса заключается в том, что у меня есть дубликат UUID:

я /Volumes/OldMacHD С UUID XYZ. У меня /Volumes/Mirror1 С UUID XYZ (тот же UUID! Бьюсь об заклад, это потому, что OldMacHD был частью этого зеркала). Я получил эти UUIDs через:

Я хотел бы изменить UUID Mirror1 .

я случайно обнаружил hfs.util утилита, так как это тома HFS после все. The страница для hfs.util говорит, что если вы -s флаг, изменяет UUID. Однако, если ввести hfs.util само по себе, он не показывает вам -s вариант на всех, только каждый вариант, кроме этого! ГРР. Я все равно попробовал:

ничего не происходит. Нет сообщения об ошибке, нет сообщения об успехе. UUID точно такой же. Я попробовал, пока том был размонтирован.

6 ответов

синтаксис для hfs.util кажется просто devicename, а не путь, включая /dev/

обязательно размонтируйте диск перед hfs.util-s и держатель потом.

используйте» сырое » устройство, т. е. rdisk1s2 вместо disk1s2

diskutil info не будет показывать новый uuid, пока вы не перемонтируете.

Это должно быть выполнимо. попробуйте использовать hfs.util, указывающий фактический идентификатор устройства Тома (если это Том raid, вам нужен идентификатор устройства Тома raid, а не какого-либо конкретного диска).

в качестве альтернативы использовать маленький инструмент, который является частью SuperDuper! таким образом, можно указать путь к подключенному тому.

кровавые детали того, как обрабатывается идентификатор Тома (который на самом деле не является UUID, UUID используется только для отображения и пересчитывается каждый раз из фактический идентификатор Тома) объясняется в моем ответе как изменить UUID Тома в Mac OS X на указанное значение?

/dev/disk4 не является Томом HFS, это целый диск, включая таблицу разделов и любое количество отдельных томов (разделов) на диске. /dev/disk4s0 пример Тома. Найдите правильный идентификатор нужного Тома HFS и попробуйте сделать hfs.util -s об этом.

Вы можете просто изменить UUID форматом раздела / erase.

1) формат диска для Mac OS расширен с помощью встроенного Disk Utility

2) Если вам нужен раздел windows, отформатируйте диск в exFAT после того, как вы сделали первый шаг (по какой-то причине вам нужно два шага для раздела windows)

Вы можете проверить, изменился ли UUID, перечислив все номера UUID:

все примеры, которые я могу найти, просто берут имя устройства BSD, а не полный путь к файлу устройства. Вы когда-нибудь пробовали это?

самый простой и наиболее совместимый способ я нашел с Gparted (можно найти MAC dmg на sourceforge илиhttp://gparted.org) и вручную выбрать этот раздел / диск и редактирования uuid таким образом

но с диском util (это работает как на linux, так и на Mac:

выберите шестерню и выключите автоматическое крепление

в новых редактируемых полях изменить «Display Name», а затем выберите (из» mount as») mount as UUID=foo

  • если ничего ценного не осталось на этом диске переформатировать и объявить отображаемое имя и монтировать как » $ (который будет uuid=foo)

(опционное) если необходимый re-enable автоматическая установка

(необязательно) измените fstab, чтобы повторно ввести сочетание дисков

Источник

Как изменить UUID тома на Mac OS X 10.6?

Кто-нибудь знает, как изменить UUID тома? Предыстория этого вопроса заключается в том, что у меня есть дублируемая проблема UUID:

У меня есть /Volumes/OldMacHD с UUID XYZ. У меня есть /Volumes/Mirror1 с UUID XYZ (тот же UUID! Я уверен, это потому, что OldMacHD ИСПОЛЬЗУЕТСЯ, чтобы быть частью этого зеркала). Я получил эти UUID через:

Я хотел бы изменить UUID Mirror1 .

Я случайно обнаружил утилиту hfs.util , так как это все тома HFS. справочная страница для —- +: = 5 =: + —- говорит, что если вы выпустите hfs.util , это изменяет UUID. Однако, если вы сами наберете -s , он не покажет вам hfs.util вообще, только каждый вариант, кроме этого! Grr. Я все равно попробовал:

Ничего не происходит. Нет сообщения об ошибке, нет сообщения об успешном завершении. UUID точно так же. Я попробовал его, пока громкость была размонтирована.

4 ответа

синтаксис для hfs.util выглядит как devicename, а не путь, включающий /dev /

обязательно отмонтируйте диск перед hfs.util -s и затем смонтируйте его.

используйте «необработанное» устройство, то есть rdisk1s2 вместо disk1s2

информация diskutil не покажет новый uuid, пока вы не перемонтируете.

Вы можете просто изменить UUID по формату /стилю раздела.

1) Отформатируйте диск в Mac OS Extended с помощью встроенного Disk Utility

2) Если вам нужен раздел Windows, отформатируйте его на exFAT после того, как вы сделали первый шаг (по какой-то причине вам нужно два этапа для раздела Windows)

Вы можете проверить, изменился ли UUID, указав все номера UUID:

Все примеры, которые я могу найти, просто берут имя BSD устройства, а не полный путь к файлу устройства. Вы пробовали это?

Самый простой и наиболее совместимый способ, который я нашел, — это Gparted (можно найти mac dmg либо в исходном файле OR http: //gparted. org ) и вручную выбрать этот раздел /диск и отредактировать uuid таким образом

НО с диском util (это работает как на Linux, так и на Mac:

выберите передачу и отключите автоподдержку

в новых редактируемых блоках Измените «Отображаемое имя», а затем выберите (из «mount as») mount как UUID = foo

  • Если ничего нет в этом форматировании диска и объявить отображаемое имя и установить как «$ (что будет uuid = foo)

(необязательно) при необходимости повторного включения автоматической установки

(необязательно) изменить fstab для повторного входа в состав дисков

Источник

Как монтировать диск с помощью UUID или LABEL в OS X El Capitan?

Я получаю UUID и метку диска из diskutil info disk0s4

mount с использованием метки тома не работает:

mount с использованием тома UUID не работает с кавычками или без них:

mount работает с идентификатором тома

Обновление:

Моя цель — поместить строку mount в /etc/fstab , поскольку я хочу подключить том к настраиваемой точке монтирования.

3 ответа

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

TL; DR:

Для монтирования тома /диска по идентификатору:

Для монтирования тома с помощью UUID:

Чтобы установить громкость по метке:

Описание

С помощью diskutil , идентификаторы узлов ( /dev/diskXsY ) взаимозаменяемы с UUID: в любой операции diskutil (например, eject ), вместо идентификатора узла можно указать UUID. На странице man:

DEVICES

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

o Идентификатор диска (см. ниже). Любая запись формы диска *, например. disk1s9.

o Запись узла устройства, содержащая идентификатор диска. Любая запись формы /dev /disk *, например. /DEV /disk2.

o Точка монтирования тома. Любая запись формы /Тома /*, например. /Volumes /Untitled. В большинстве случаев «пользовательское» монтирование например, /your /custom /mountpoint /здесь также принято.

o Форма URL-адреса любой из форм точечной точки монтирования, описанной выше. Например. file: ///Тома /Без названия или файла: ///.

o UUID. Любая запись в форме, например. 11111111-2222-3333-4444-555555555555. UUID может быть «медиа» UUID который IOKit размещает в узле IOMedia как получено из, например, UUID разделов карты GPT, или это может быть идентификатор UIID (ИЛИ) (или CoreStorage) AppleRAID (PV).

Получение этих идентификаторов /UUID /ярлыков просты, с любой из следующих команд:

Возвращенные значения этих команд должны выглядеть примерно так:

Как показано выше, идентификатор можно найти из столбца IDENTIFIER , метка из NAME , а UUID — из поля UUID (либо UUID будет монтировать объем).

дополнение для редактирования вопроса OP: установка на пользовательский путь

Вы можете сделать это с помощью diskutil mount и -mountPoint . На странице man:

mount [readOnly] [-mountPoint path] устройство

Установите один том. Если указано readOnly, тогда файловая система монтируется только для чтения, даже если основная файловая система тома и /или устройство и /или носитель поддерживают запись; даже суперпользователь не может писать на него; это то же самое, что и параметр rdonly для монтирования (8). Если задан параметр -mountPoint, то этот путь, а не стандартный путь /Volumes /VolumeName, будет использоваться в качестве представления в содержимом файла тома; каталог на этом пути уже должен существовать.

Синтаксис для монтирования в пользовательскую точку монтирования выглядит следующим образом:

Имейте в виду, что /path/to/custom/mountpoint должен быть каталогом , как с помощью mount и что ваш идентификатор /UUID /метка специфичны для тома (т.е. /dev/diskXsY not /dev/diskX ). Установка на пользовательскую точку монтирования не может быть выполнена с помощью diskutil mountDisk и работает только содин том за раз.

Вот то, что я использовал для монтирования внешнего SSD в мою папку «Музыка», которая автоматически содержит мои медиафайлы iTunes всякий раз, когда я вхожу в систему. Вы не указали точно, какова цель внешнего монтирования, поэтому некоторые из этих бит может быть не тем, что вам нужно, но затем снова, это может быть именно то, что вы пытаетесь сделать.

Как упоминалось в вашем вопросе и в ответе @ maybemaybeharry, команда mount не поддерживает UUID, поэтому diskutil — рекомендуемая утилита. Однако файл fstab поддерживает UUID, поэтому вы можете сохранить параметры монтирования в fstab , затем diskutil будет читать параметры из fstab для установки вашего диска.

/Music/iTunes/ создайте папку, которая будет использоваться для точки монтирования. Я использовал SSD_Music .

Используйте sudo vifs , чтобы отредактировать fstab , добавьте следующее в виде одной строки (редактирование для UUID и USERNAME, если это необходимо), затем сохраните /выйдите. UUID=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/USERNAME/Music/iTunes/SSD_Music hfs rw,noauto,noowners,nobrowse 0 0

  • noauto = не монтировать диск во время загрузки. Я встречал времена, когда диск монтировался как root вместо меня, поэтому лучше подождать, пока вы войдете в систему.
  • noowners = Игнорировать право собственности на том. Разрешения будут унаследованы от точки монтирования. Если я не использовал это, смонтированный том принадлежал root, но подкаталоги принадлежали мне.
  • nobrowse = Не показывать диск на боковой панели Finder или на рабочем столе.
  • Выполните монтирование с помощью diskutil mount F8C88B2D-5412-343B-8969-254F3AC559B8 ( Примечание: Не включайте UUID= в этой команде.
  • Надеюсь, что он установлен без ошибок. Проверьте это с помощью mount , который должен показывать что-то вроде /dev/disk2s2 on /Users/USERNAME/Music/iTunes/SSD_Music (hfs, local, nodev, nosuid, journaled, noowners, nobrowse)
  • Если вы делаете это для iTunes, вам нужно создать псевдоним для папки iTunes Media , чтобы указать на папку на смонтированном диск.
    • Закройте iTunes, если он запущен. cd

      /Music/iTunes/ литий> mv ‘iTunes Media’ ‘iTunes Media-bak’ литий> ln -s ‘SSD_Music/iTunes Media’ ‘iTunes Media’ литий>

    • ditto ‘iTunes Media-bak’ ‘iTunes Media’ , чтобы скопировать медиа на новый диск. Пропустите это, если вы уже скопировали его.
  • Отключите диск с помощью diskutil unmount

    Теперь, когда вы можете подключить диск по UUID, давайте автоматизируем его при входе в систему.

    /Library/LaunchAgents/ , создайте новый файл с именем local.mount_SSD_Music.plist

    Скопируйте /Вставьте следующий XML в новый файл, затем сохраните /выйдите.

    Убедитесь, что диск размонтирован

    Протестируйте установку с помощью нового планшета LaunchAgent с помощью launchctl load

    /Library/LaunchAgents/local.mount_SSD_Music.plist . Надеюсь, он снова установил ошибки.

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

    Надеюсь, это поможет!

    Я сочетаю некоторые мои комментарии с ответом, поскольку считаю, что он обращается к проблеме fstab .

    Как вы уже узнали, команда mount не может использовать UUID или LABEL и должен использовать идентификатор диска, например /dev/disk0s4 . Кроме того, возможно, майбехарри отметил, что метод OS X должен использовать diskutil . Чтобы ответить на ваше обновление . Однако fstab может использовать UUID или LABEL , просто посмотрите примеры на странице руководства для fstab . В терминальном типе fstab , а затем щелкните правой кнопкой мыши по fstab и выберите Open man Page. Прочтите его целиком! 🙂

    У меня нет проблем с использованием fstab , но я всегда использую по крайней мере первые четыре поля. Я вижу, что в вашем комментарии отсутствует третье поле (fs_vfstype). Вы опускаете его в fstab ? Вы должны отредактировать свой вопрос и показать, что вы пробовали в fstab и какой редактор вы использовали.

    Попробуйте: UUID=1738336E-68DD-46B1-997E-57469CF0472D /mount/point hfs rw,auto где /mount/point — существующий каталог.

    Я тестировал это в своей системе, используя мой UUID , это ваш UUID в строке, которую я предлагаю вам попробовать выше.

    Примечание: Он будет монтироваться только к определенной точке монтирования, если я включил третье поле (fs_vfstype), в противном случае оно смонтировано в /Volumes , хотя второе поле (fs_file) существует.

    Источник

    Как изменить UUID тома в Mac OS X на значение SPECIFIED?

    Это похоже на вопрос, заданный здесь:

    Разница лишь в том, что я хочу изменить его на конкретное значение, а не на случайное. Hfs.util только кажется случайным.

    Я подумал об изменении источника hfs.util, чтобы позволить мне указывать значения. Пока я искал код и искал, с чего начать вносить изменения, я вспомнил, почему C не мой любимый язык. Несколько ошибок компиляции и ошибки позже, я потерял энтузиазм, пытаясь изменить этот инструмент. Я готов снова попробовать это после того, как я немного отдохну, но я думаю, что должен быть более простой способ изменить UUID тома, о котором я просто не знаю.

    Итак, прежде чем я потрачу больше времени, кто-нибудь знает простой способ сделать это? Или кто-нибудь из экспертов C хотел бы присоединиться к моим усилиям, чтобы hfs.util изменил UUID на указанное значение?

    Вот изменения, которые я сделал, чтобы иметь возможность скомпилировать инструмент из исходной версии OS X 10.6.8:

    И, как указывалось в этой статье, добавлено следующее из строки 166 в файле fs.c в файл hfsutil_main.c (поскольку namespace.h нет в системе):

    2 ответа 2

    Я взялся за это. Я скачал исходный код для hfs.util , внес изменения, которые вы упомянули (чтобы он мог скомпилироваться), снова включил функцию UUID (например, -s, которая отключена в текущем источнике), и добавил новую команду (-S, которая используется для указания UUID).

    Формат новой команды такой:

    Вы должны использовать sudo или запускать с правами root, но вам НЕ нужно отключать том (даже если это ваш текущий системный том).

    Однако, я все еще отлаживаю это (я ужасен с C). Я могу запустить его без ошибок, но он все еще эффективно рандомизирует новый UUID с -S. Независимо от того, какой UUID я указал, я все равно получаю другой.

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

    Если я потерплю неудачу, я, вероятно, все еще выложу diff, и, возможно, кто-то еще (кто лучше с C) может это исправить.

    РЕДАКТИРОВАТЬ: ОК. Я обнаружил, что, как представляется, главная ошибка в функциях, которые обрабатывают двоичные функции UUID string в исходном коде Apple для hfs.util . В качестве двоичного значения для хранения 128-битного UUID требуется 4 (без знака) 32-разрядных слова. Похоже, что источник Apple обрабатывает только 16 шестнадцатеричных символов (это должно быть 16 октетов по 2 шестнадцатеричных символа каждый).

    Похоже, что он также использует дефектную структуру для хранения UUID (он, похоже, хранит только «старшее» 32-битное слово и «младшее» 32-битное слово, но потребуется 4 (без знака) 32-битных слова). Я могу думать, что могу это исправить, но я должен изменить структуру и все функции, которые используют структуру (так что это может занять некоторое время).

    РЕДАКТИРОВАТЬ # 2: После того, как вы потратили слишком много времени на отладку исходного кода Apple для hfs.util (я действительно не программист на C), похоже, что Apple намеренно обрабатывает только 64-битные при обработке UUID. Остальное генерируется из хэша 64-битной константы, значений компонентов компьютера, текущего времени и т.д. Таким образом, если вы использовали один и тот же 64-битный «ключ» дважды, вы все равно получили бы два разных UUID (даже если вы использовали один и тот же компьютер, время все равно изменилось). Пока фактическая запись в заголовок тома отправляет фактический UUID (а не просто ключ), и пока заголовок тома хранит фактический UUID (а не только ключ и / или значения, которые могут использоваться для вычисления UUID), то есть надежда. Моя отладка еще не прошла так далеко. Я отправлю еще раз, когда узнаю больше.

    Я не изучал исходный код hfs.util, и, вероятно, уже слишком поздно, чтобы быть полезным для вас, но я думаю, что могу внести что-то полезное.

    UUID, используемые для томов HFS+, по-видимому, представляют собой все варианты, охватываемые спецификацией UUID, и относятся к типу версии 3, то есть к пространству имен и имени, преобразованному в UUID через MD5 (см. Подробности в википедии).

    Представляется вероятным, что фактический идентификатор диска (занимающий место имени в спецификации) составляет всего 64 бита, преобразуемого в 128-битный UUID в соответствии со спецификацией, добавляя UUID любого пространства имен, которое Apple использует для идентификаторов томов, и затем применяя хеш MD5.

    Это не касается значений компонентов компьютера, текущего времени и т.д. Они используются для других типов UUID. Однако он включает в себя UUID «пространства имен» (для определения того, что мы «называем» том диска), а затем «имя» (фактический идентификатор диска).

    Одна вещь, которая заставляет меня так думать, — это не только утверждение @ chriv о том, что код, похоже, использует только 64 бита, но и способ обработки UUID с помощью «секретной» утилиты, поставляемой с SuperDuper!

    СуперДупер! Утилита резервного копирования для Mac OS X имеет «скрытый» инструмент командной строки, который позволит вам получить и установить UUID тома. Но он одновременно извлекает и устанавливает его как последовательность из 64 битов (выраженную в шестнадцатеричном формате). И кажется, что эти биты сильно отличаются от фактических значений, сообщаемых дисковыми утилитами Apple.

    Для получения дополнительной информации см .:

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

    Обновить

    Я взглянул на источники Apple. Я подтверждаю, что я написал выше. На диске сохраняется 64-битный идентификатор тома (который генерируется случайным образом, беря первые 64 бита хэша SHA1 из набора псевдослучайных бит данных: время работы, время загрузки, идентификатор хоста, имя хоста, выпуск ядра). строка, строка версии ядра, средняя загрузка, статистика ВМ и текущее время).

    В UUID версии 3 это «имя». Поэтому на диске сохраняется 64-битное «имя» тома, а не UUID.

    UUID в 128 битов, который сообщается инструментами, не сохраняется, он вычисляется каждый раз, для целей отображения, из «имени» и «пространства имен» (пространство имен фиксировано и является константой kFSUUIDNamespaceSHA1, к которой ОП пришлось вручную добавить источник, потому что заголовок, содержащий его, отсутствует: он представляет «пространство имен» для «имен» томов, которые являются 64-битными объектами, которые фактически сохраняются на томах для их идентификации).

    Легко перейти от «имени» к UUID (в основном вы применяете стандартный алгоритм для UUID версии 3), но в принципе невозможно вернуться от UUID к «имени». Другими словами, ответ на OP таков: это возможно, если вы знаете «имя» тома (например, если вы хотите восстановить резервную копию на новый диск и сохранили как имя, так и данные) , но не если вы знаете только UUID. Правильная установка имени приведет к ожидаемому UUID, но вам нужно имя и вы не можете вычислить его по UUID.

    Примечания к коду Apple (прочитайте их, посмотрите на код, и все станет ясно):

    Как я уже писал, все, что есть на диске, это «имя». UUID вычисляется только для визуализации с использованием алгоритма версии 3 (UUID для «имени» в «пространстве имен»).

    • kFSUUIDNamespaceSHA1 — это константа «пространства имен», как описано выше.
    • uuid_create_md5_from_name — это алгоритм UUID версии 3, который вычисляет UUID версии 3 с учетом «пространства имен» и «имени».
    • GenerateVolumeUUID генерирует новое случайное «имя» (обратите внимание: только «имя», а не UUID, несмотря на имя функции).

    Установка и получение «имени» на диск зависит от того, смонтирован ли том в данный момент. «Имя» хранится в «Finder Info» тома. Получение и настройка данных «Finder Info» для смонтированного тома может быть выполнено с помощью getattrlist и setattrlist, но если том не смонтирован, они обращаются к прямому доступу к данным тома (в конце концов, это unix, а размонтированный том — блок устройство, которое доступно, как root, в виде файла).

    • SetVolumeUUID, SetVolumeUUIDRaw, SetVolumeUUIDAttr, GetVolumeUUID, GetVolumeUUIDRaw, GetVolumeUUIDAttr выполняют чтение / запись «имени» (опять же, несмотря на их имя, они обрабатывают только «имя» тома, а не UUID). Функции * Raw обрабатывают прямой доступ через «файл» устройства для несмонтированных томов, а функции * Attr используют API get / setattrlist. Простые проверяют, смонтирован ли том, и вызывают соответствующую версию * Raw / * Attr.

    Тогда есть функции «высокого уровня», которые реализуют функциональность инструмента:

    • DoGetUUIDKey получает «имя», корректирует порядковый номер, а затем вычисляет UUID для отображения.
    • DoChangeUUIDKey создает новое случайное имя и записывает его на том.

    Поэтому лучшее, что вы можете сделать, это перекодировать ту же функциональность, что и маленький инструмент командной строки, встроенный в SuperDuper Shirt Pocket! (см. ссылки, которые я разместил выше).

    Источник

    Читайте также:  Драйвера для lenovo ideapad y570 для windows
  • Оцените статью