2

Краткое резюме Версия вопроса Почему, когда я пытаюсь скопировать образ ISO CD на 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

Попробуем разделить диск1s1 на флэш-диске тремя разделами диска2s1 на CDROM:

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.

Теперь Дискутил говорит мне:

/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

Что это значит? Это почти наверняка связано с тем, что мое залипание означает, что карта корневых разделов диска 1 говорит о том, что disk1s1 по-прежнему является Apple_HFS, даже если его содержимое является файловой системой Apple_partition_scheme, но не должна ли Дисковая утилита выводить тип disk1s1, если в этом проблема? И почему Дискутил говорит мне:

cas cas$ diskutil mount /dev/disk1s1
Volume /dev/disk1s1 mounted

... когда фактически ни одна файловая система не смонтирована?

1 ответ1

3

Это образованное предположение; Я не знаю OSX или diskutil хорошо, но я знаю общие файловые системы и блочные устройства, поэтому я думаю, что знаю, что происходит.Многое из этого может быть неточным, хотя; это сделано CW так, чтобы эксперты файловой системы OSX могли исправить это по мере необходимости.


Я не думаю, что компакт-диск на самом деле имеет 3 раздела для копирования. Какой список diskutil показывает, что вы - /dev /disk2, это одно дочернее устройство и два дочерних устройства этого ребенка:

  • /dev/disk2 "CD_partition_scheme" - это "физический" CD

    1. /dev/disk2s1 "Apple_partition_scheme" - первая дорожка CD, если я правильно понимаю, как называть устройства OSX. Из разницы в размерах с родительским устройством и этим, я думаю, что это CD минус коррекция ошибок данных.

      1. /dev/disk2s1s1 "Apple_partition_map" - по размеру это выглядит как таблица разделов или таблица файлов

      2. /dev/disk2s1s2 "Apple_HFS" - это актуальная файловая система

То, что вы скопировали на свой USB-раздел, не было тремя разделами; это было упорядоченное содержимое CD, за исключением данных для исправления ошибок. Ваш USB-раздел должен теперь содержать эквивалент ISO-образа компакт-диска.

Вероятно, поэтому он не будет монтироваться. Я не знаком с расширенными опциями diskutil , но если бы я сделал что-то подобное в системе Linux со стандартным диском данных ISO9660, я бы использовал это, чтобы попытаться смонтировать раздел USB:

mount -t iso9660 /dev/myusbdevice /mnt/path

... и, возможно, это сработает. Но, основываясь на вашем вопросе, вы, похоже, пытаетесь получить доступ к этому разделу USB как к файловой системе, и, учитывая вашу команду dd и выше, это не файловая система - это образ компакт-диска.


Чтобы ответить на ваш вопрос тогда:

Что означает «Неверный размер узла B-дерева»? Это означает, что Дисковая утилита не распознает допустимую файловую систему в /dev/disk1s1. Ваша команда dd скопировала то, что вы сказали копировать, но то, что вы сказали копировать, не является файловой системой. Когда вы запускаете на нем операцию "Проверка и восстановление", проверка завершается неудачно, так как она ожидает файловую систему и получает карту разделов CD.

Если вы пытаетесь скопировать файловую систему с помощью dd, вы, вероятно, захотите скопировать /dev/disk2s1s2, а не /dev/disk2s1.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .