Версия Краткого изложения Вопроса Да ведь когда я пытаюсь скопировать образ CD ISO на устройство флэш-памяти USB, я получаю много странных поведений?
Исходная версия Вопроса, со всеми подробностями — следующее напрашивается на неприятности: с картой флэш-памяти с интерфейсом USB в/dev/disk1 и CD-ROM в/dev/disk2 следующим образом (на Mac OS 10.4):
cas cas$ diskutil list # deleting irrelevant output /dev/disk1 #: type name size identifier 0: FDisk_partition_scheme *3.7 GB disk1 1: Apple_HFS usr-kodp 614.4 MB disk1s1 2: Apple_UFS glowline 1.8 GB disk1s2 3: DOS_FAT_32 VAR-KODP 1.2 GB disk1s3 /dev/disk2 #: type name size identifier 0: CD_partition_scheme *557.1 MB disk2 1: Apple_partition_scheme 485.1 MB disk2s1 2: Apple_partition_map 1024.0 B disk2s1s1 3: Apple_HFS KoDP 479.5 MB disk2s1s2
Попытайтесь ударить раздел флеш-накопителя disk1s1 с тремя разделами CD-ROM disk2s1:
cas cas$ dd if=/dev/disk2s1 of=/dev/disk1s1 bs=1024 count=496742
Получающийся раздел не смонтируется, и Дисковая утилита не может восстановить его:
Verify and Repair disk “disk1s1” Checking HFS volume. Invalid B-tree node size Volume check failed.
Теперь diskutil говорит мне:
/dev/disk1 #: type name size identifier 0: FDisk_partition_scheme *3.7 GB disk1 1: Apple_HFS usr-kodp 614.4 MB disk1s1 2: Apple_UFS glowline 1.8 GB disk1s2 3: DOS_FAT_32 VAR-KODP 1.2 GB disk1s3
Что это значит? Это почти наверняка, потому что мое избиение означает, что корневая карта раздела disk1 говорит этому, что disk1s1 является все еще Apple_HFS, даже при том, что его содержание является файловой системой Apple_partition_scheme, но разве Дисковая утилита не должна мочь вывести тип disk1s1, если это - проблема? И почему делает diskutil, говорят мне:
cas cas$ diskutil mount /dev/disk1s1 Volume /dev/disk1s1 mounted
... когда на самом деле никакая файловая система не смонтирована?
Это - образованные догадки; я не знаю OSX или diskutil хорошо, но я действительно знаю общие файловые системы и блочные устройства, таким образом, я думаю, что знаю то, что продолжается. Многое из этого могло быть неточным, хотя; это сделало CW так, чтобы эксперты по файловой системе OSX могли исправить это по мере необходимости.
Я не думаю, что CD на самом деле имеет 3 раздела для Вас для копирования. Какой список diskutil показывает, что Вы-/dev/disk2, это - единственное дочернее устройство, и что собственные 2 дочерних устройства ребенка:
/dev/disk2 "CD_partition_scheme" - это - "физический" CD
/dev/disk2s1 "Apple_partition_scheme" - первая дорожка CD, если я понимаю устройство OSX, называющее правильно. От различия в размере с родительским устройством и этим, я думаю, что это - CD минус коррекция ошибок данных.
/dev/disk2s1s1 "Apple_partition_map" - от размера, это похоже на таблицу разделов или таблицу файлов
/dev/disk2s1s2 "Apple_HFS" - это - фактическая файловая система
Таким образом, то, что Вы скопировали на свой раздел USB, не было тремя разделами; это было чтобы содержание CD минус данные коррекции ошибок. Ваш раздел USB должен теперь содержать эквивалент ISO-образа CD.
Это, вероятно, почему это не смонтируется. Я не знаком с усовершенствованными diskutil опциями, но если бы я сделал что-то подобное в системе Linux со стандартными данными ISO9660 CD, я использовал бы это, чтобы попытаться монтировать раздел USB:
mount -t iso9660 /dev/myusbdevice /mnt/path
... и возможно который работал бы. Но на основе Вашего вопроса, Вы, кажется, пытаетесь получить доступ к тому разделу USB как к файловой системе, и, учитывая Вашу команду dd и вышеупомянутое, это не файловая система - это - образ CD.
Отвечать на Ваш вопрос затем:
Что делает "Недопустимый размер узла B-дерева", средний? Это означает, что Дисковая утилита не распознает допустимую файловую систему на/dev/disk1s1. Ваша команда dd скопировала то, что Вы сказали ей копировать, но что Вы сказали, что это для копирования не является файловая система. Когда Вы работаете, "Проверяют и Восстановление" операция на нем, проверить сбои, потому что это ожидает файловую систему, и это получает карту раздела CD.
При попытке скопировать файловую систему с dd, Вы, вероятно, хотите скопировать/dev/disk2s1s2 и не/dev/disk2s1.