Filesystem type is iso9660 using whole disk

Есть два типа маппинга, это прямой маппинг и маппинг памяти. Прямой маппинг обычно используется для больших образов/устройств. Если использовать прямой маппинг, то чтобы создать виртуальное устройство из образа диска, файл образа должен быть непрерывным (не фрагментированным). Эти утилиты — contig или wincontig могут дефрагментировать файл образа.
Попытка замапить фрагментированный файл приведёт к результату — Error 60: File for drive emulation must be in one contiguous disk area , при таком сообщении нужно делать маппинг в память или дефрагментировать образ и пробовать снова.

Маппинг памяти, это значит, что устройство/образ переносится в оперативную память, обычно используется для маленьких образов — Например образов флоппи дисков. При маппинге в память образ диска может быть и фрагментированным. Размер имеющейся оперативной памяти, будет определять максимальный размер образа который можно загрузить.

Процесс "map" осуществляется с помощью INT 13 — и эмулируемый диск будет доступен из других ОС которые используют совместный доступ к файлам, Например DOS и Windows 9x. Не будет доступа к дискам образов ОС, которые используют защищённый режим драйверов (Windows NT/2000/XP/Vista, Linux, FreeBSD) как только режим защиты вступит в работу.

Прямой Маппинг

Загрузка образов дисков

Пример прямого маппинга образа флоппи диска уже приводился ранне в этом руководстве:

Вот что мы видим, когда делаем всё это в командной строке:

grub> map (hd0,0)/win98.ima (fd0)
FAT12 BPB found with 0xEB (jmp) leading the boot sector.

probed C/H/S =80/2/18, probed total sectors = 2880

floppies_orig=0, harddrives_orig=2, floppies_curr=1, harddrives_curr=2

grub> chainloader (fd0)+1

grub> rootnoverify (fd0)

grub> map —floppies=1

Когда используется прямой маппинг, образ диска должен иметь работоспособную MBR. Образ с несколькими разделами должен мапироваться как (hd) устройство. Если образ диска состоит из одного раздела (без MBR), тогда надо мапить его как флоппи.

Ряд примеров маппинга можно встретить в файле README_GRUB4DOS.txt .

Подмена диска

Например можно исползовать команду map для подмены дисков, когда мы загружаемся с USB устройства (Например флешка или УСБ-жёсткий диск). Когда настройки BIOS выставлены на загрузку с USB, жёсткий диск станет (hd1). DOS и Windows 9x не смогут грузиться с этого жёсткого диска. Windows NT системы теоретически могут грузиться не с первого диска, но пути в boot.ini будут не верны, когда произойдёт загрузка с USB устройства. Если windows установлена на жёсткий диск, она не будет грузиться.

Например мы ставим в компьютер новый жёсткий диск. А старый жёсткий диск с установленной Windows XP — превращаем из первичного (master) во вторичный (slave) (он становится (hd1)). Новый диск становится первичным (master) (hd0) на нём установлена Vista и теперь нет никакой возможности грузить Windows XP со старого диска.

В подобном случае мы можем загрузить систему не с первого раздела путём подмены дисков (Например: поменяем (hd1) на (hd0)).

(hd0,0) содержит файл-метку hd0.tag и (hd1,0) содержит файл-метку hd1.tag . Программа MBR Wizard находится на (hd1,0), чтобы проверить какой диск будет доступен из ДОС после экспериментов с командой map .

В результате получим ошибку,

ПРИМЕЧАНИЕ — используя вышеуказанный набор команд, замена (hd1) на (hd0) не будет иметь эффекта пока команда boot не выполнена. Хотя устройство (hd1) было замаплено как (hd0), все ссылки на фактические устройства остаются к (hd1) в Grub4dos. Введение команды find /hd0.tag из командной строки, вернёт устройство (hd0,0), введение команды find /hd1.tag из командной строки, вернёт устройство (hd1,0) — смотрим пример ниже:

grub> map (hd1) (hd0)

grub> find /hd0.tag
(hd0,0)

grub> find /hd1.tag
(hd1,0)

grub> root (hd1,0)
Filesystem type is fat, partition type 0xe

grub> chainloader /io.sys
Will boot MS-DOS 7.x from drive=0x81, partition=0x0(h >
grub> boot_

Обратите внимание на то, что выводит команда chainloader — . from drive=0x81 . После загрузки ДОС выполняем команду mbrwizd.exe /list . Теперь вы можете увидеть по размеру и типу файловой системы на Фото 1 — перед нами устройство (hd1) отображается как Disk:0 и Disk:1 — а устройство (hd0) не видимо.

ПРИМЕЧАНИЕ — использование вышеперечисленного набора команд, заменит (hd1) на (hd0) немедленно, после того как команда map —hook будет выполнена. Ввод команды find /hd0.tag из командной строки будет иметь результат — "File not found" (файл не найден), ввод команды find /hd1.tag из командной строки вернёт устройства (hd0,0) и (hd1,0) — смотрим пример ниже:

grub> map (hd1) (hd0)

grub> find /hd0.tag
Error 15: File not found

grub> find /hd1.tag
(hd0,0)
(hd1,0)

grub> root (hd0,0)
Filesystem type is fat, partition type 0xe

grub> chainloader /io.sys
Will boot MS-DOS 7.x from drive=0x80, partition=0x0(h >
grub> boot_

Обратите внимание на то, что выводит команда chainloader — . from drive=0x80 . После загрузки ДОС выполняем команду mbrwizd.exe /list . Результат будет таким же как и в предидущем примере, устройство (hd1) отобразится как Disk:0 и Disk:1 — а устройство (hd0) опять не видимо.

ПРИМЕЧАНИЕ — после введения команды map (hd1) (hd0) и map (hd0) (hd1) , введение команды find /hd0.tag из командной строки вернёт устройство (hd0). Введение команды find /hd1.tag вернёт устройство (hd1). Когда ДОС будет загружен, оба диска будут доступны, хотя физическое устройство (hd1) будет отображено как Disk: 0, и устройство (hd0) будет Disk: 1 — смотрим Фото 2.

Запомните, что эмулируемые диски доступны только из ОС использующих INT 13. В примере показанном выше, Windows-подобная система увидит устройство (hd0) как "disk 0" и устройство (hd1) как "disk 1".

Когда маппинг раздела выполнен в следующем синтаксисе (hdm,n)+1 он используется для представления целого раздела (Где m=номер диска, и n=номер раздела), а не только первого сектора.

Пример ответа Grub4dos на команды приведённые выше:

grub> map (hd1,0)+1 (hd0)
FAT16 BPB found with 0xEB (jmp) leading the boot sector.

probed C/H/S =40/16/63, probed total sectors = 40257
Try to locate extended partition (hd1)0+40320 for the virtual (hd0).

probed C/H/S =40/16/63, probed total sectors = 40320

grub> map (hd1) (hd0)

grub> chainloader /io.sys
Will boot MS-DOS 7.x from drive=0x80, partition=0x0(h >
grub> rootnoverify (hd0)

Отрывок с предупреждением из README_GRUB4DOS.txt :

Маппинг памяти

Мапинг памяти используется с комадами как и на примерах выше, и добавился параметр —mem.

Когда мы используем маппинг памяти, допускается, что образ диска может быть фрпагментированым. Устройство преносится в оперативную память — Например: map —mem (hd0,0)+1 (fd0) (как говорилось ранее, +1 используется с командой map чтобы обозначить целый диск). Если замапить образа диска без MBR в память, он может быть в качестве (hd) устройства, а MBR будет создан в рамках Grub4dos — основываясь на данных раздела.

Сжатый образ тоже можно использовать при маппинге памяти. Образ должен быть сжат gzip-ом (получится файл с расширением .gz ), это бесплатный "opensource" архиватор. Т.к многие образы дисков не являются "заполнеными", их сжатие, может освободить достаточно много места. Стандартные образы дискет (1440 Кб) обычно оставляют как есть. Сжимать образы рекомендуется т.к это позволяет экономить место и ускорять их запуск.

gzip можно скачать Здесь. Если будем давить gzip-ом образ флоппи диска bcdl201a.ima 1440Кб, то в сжатом виде он будет весить 10.4Кб.

Grub4dos поддерживает только .gz формат, а ядро memdisk (часть пакета syslinux) поддерживает .zip формат — Например Winimage .imz формат. Ядро memdisk может быть сжато gzip-ом и загружено с помощью Grub4dos.

  • find —set-root /memdisk.gz [enter]
  • kernel /memdisk.gz [enter]
  • initrd /win98.ima.gz [enter]
  • boot [enter]
  • find —set-root /memdisk.gz [enter]
  • kernel /memdisk.gz [enter]
  • initrd /win98.ima.zip [enter]
  • boot [enter]

ПРИМЕЧАНИЕ — на вышеприведённых примерах win98.ima должен находиться в том же разделе, что и memdisk.gz .

Загрузка из .ISO образа

Есть несколько типов эмуляции загрузки с CD, включая флоппи эмуляцию — в которой загрузочный сектор CD это образ загрузочной дискеты. Загрузочный сектор нельзя увидеть при просмотре содержимого CD в файловых менеджерах таких как Windows Explorer, может показаться, что диск пуст и нет на нём никаких файлов и образов.

В следующем примере был взят образ CD содержащий в себе загрузочный сктор в виде ДОС-загрузочной дискеты, с различными ДОС программами на диске CD (не в загрузочной области). Когда мы загружаемся с этого (реального) CD, образ в загрузочном секторе определяется как диск A:, и сам CD-ROM (и программы в его корне) занимают следующую доступную букву диска. Файл образа CD (hd0,0)/dos.iso будет грузиться используя команды приведённые выше, вот то что покажет Grub4dos в результате этих команд:

grub> map (hd0,0)/dos.iso (hd32)

grub> root (hd32)
Filesystem type is iso9660, using the whole disk

grub> chainloader (hd32)

Load segment: 0x0 System Type: 0x0 Sector Count: 0x1
Load RBA: 0x3E Boot Type: 2 = 1.44M floppy

С виду CD загрузился нормально. Загрузочный сектор CD определился как A:, а CD-ROM определился как E:.
Но к сожалению попытка дострупа к файлам на диске E: (корень CD образа) заканчивается ошибкой.

Файл README_GRUB4DOS.txt гласит:

ПРИМЕЧАНИЕ — Если команда mkisofs –iso-level 4 была использована для создания .iso образа (как это делается в PE билдах), MSCDEX.EXE не должна использоваться — удалите её с SHSUCDX
(Подробности Здесь).

Отредактированные config.sys и autoexec.bat и с добавленным в загрузочный образ файлом eltorito.sys , записали в dos.iso .
Этот переделанный CD загрузился как и ранее с доступным как A: загрузочным образом и с недоступным корнем CD.

Когда мы мапим .iso содержащий eltorito.sys в загрузочном секторе устройства (0xFF), CD-ROM загружается и теперь обе части, загрузочный образ (А:) и корень CD доступны!

Этот пример показывает какие сложности случаются при эмуляции CD-ROM. Если хотите посмотреть на рабочие примеры, то это можно сделать Здесь

Вложеный Маппинг

Используя последние версии Grub4dos можно замапить образ из другого замапленного образа — Иногда это называют двойной маппинг.
UBCD проект, например, использует загрузочный CD содержащий загрузочный образ дискеты. Используя эмуляцию CDROM, мы можем замапить файл UBCD .iso как (hd32),
затем замапить образ флоппи диска из (hd32) как устройство (fd0), затем загрузиться со свежезамапленного образа флоппи диска.

Например:

  • map —mem (hd0,0)/ubcd34-basic.iso (hd32) [enter]
  • map —hook [enter]
  • map —mem (hd32)/IMAGES/MAXBLAST.IGZ (fd0) [enter]
  • map —hook [enter]
  • root (fd0) [enter]
  • chainloader +1 [enter]
  • boot [enter]

ПРИМЕЧАНИЕ для Grub4dos, автор tinybit — При использования этой формы маппинга, нет ограничения на число вложений. По примеру выше,
можно замапить ещё один образ из последнего замапленного как (fd0).

Запуск Ubuntu 14.04 на Oracle VirtualBox 4.3.24 и полностью застрял с добавлением гостя. Я потратил довольно много времени на поиск решения в Интернете, но ничего не помогло .

Как показано ниже, я попытался установить вручную, а также загрузить ISO из Интернета (версия, соответствующая VirtualBox). Та же ошибка:

Теперь некоторые папки стали «только для чтения», что вызывает большие проблемы. Даже установка нового образа Ubuntu 14.04 не помогает . Поэтому переустановка самого VirtualBox .

6 ответов

Мне удалось решить проблему установки путем переустановки образа Linux:

Кстати, все началось с обновления VirtualBox. Двунаправленный буфер обмена прекратил работу, поэтому я попытался повторно установить гостевые дополнения ISO. Это вызвало нечто подобное. Теперь гостевые дополнения монтируются обратно, но буфер обмена не работает .

TL; DR обычно это можно восстановить с помощью перезагрузки . Затем CD-ROM будет работать, и гостевые дополнения будут установлены:

«Лучшая» последовательность обновления ядра на VirtualBox с дополнениями:

(Следующее старое ядро ​​не может быть автоматически удалено из соображений безопасности, чтобы вы могли «вернуться»).

Почему это происходит

Именно такая проблема возникнет, если вы:

  • обновить ядро ​​(скажем, от .66 до .67)
  • запустите apt-get autoremove и удалите старое ядро ​​или вручную удалите «старое» ядро, тем самым удалив все модули из /lib/modules/kernel.66
  • не перезагружайтесь, тем самым сохраняя «старое» .66 ядро. Загруженные модули остаются в памяти, но не могут быть загружены новые модули , поскольку модули .66 были удалены.
  • попытайтесь сделать все, что требует загрузки модуля, который еще не загружен.

Запрошенный модуль теперь не может быть автоматически загружен, потому что работающее ядро ​​(.66) ничего не находит в /lib/modules/kernel.66. Модуль существует , но он находится в /lib/modules/kernel.67, о котором текущее ядро ​​.66 ничего не знает (и не рекомендуется загружать модуль несоответствия).

Повторная установка ядра uname’d, конечно же, переустановит запущенные модули ядра, тем самым сделав ../.66/. /isofs.ko доступным снова и ненужную перезагрузку. Это понижение установленного ядра, и проблема с обновлением останется .

То есть, когда вы запускаете CD дополнений, он установит для ядра running .66, not обновленное ядро ​​.67 (которое еще не запущено) .

Если вы находитесь в такой ситуации, вы также можете конечно исправить его, перезагрузив (новое запущенное ядро ​​.67 найдет его модули) и возможно , загрузив модуль, принадлежащий к новому ядру ( isofs довольно стабилен), который, если вы не подверглись важному обновлению ядра, по-прежнему будет совместимым ( это все равно не рекомендуется! ):

Это выше корневая ошибка, которую вы получаете («неизвестный тип файловой системы»).

Итак, мы проверяем, какая версия модулей установлена. Это должно быть .66:

. но есть только один каталог и это .67 (каталог .66 может быть там, но пуст, в этом случае du -sh /lib/modules/* будет указывать, сколько места занимают различные каталоги, позволяя рассказать между пустым один и полный).

Повторная установка старого ядра не будет исправлять реальную проблему

Вы переустанавливаете ядро ​​.66 с его модулями и заголовками. Теперь у вас есть оба ядра, с grub установлено для загрузки нового .67.

Можно установить CD-ROM ISO (поскольку модуль теперь присутствует), и модули VBox будут скомпилированы (поскольку эти заголовки установлены).

Он будет компилировать модули для ядра .66, и они будут работать . на некоторое время.

При первой перезагрузке вы окажетесь с ядром .67 без добавления VirtualBox вообще.

Патч в модуле ISO также не устранит настоящую проблему

Скорее всего, мы можем принудительно загружать модуль ISO9660, поскольку между ядрами 66 и 67 не выполнялась работа, и двоичный файл практически не изменился, поэтому мы стараемся:

Нет ошибок. Это сработало. Ядро .66 загрузил модуль из ядра .67. Попробуем снова установить CD-ROM:

Это все равно не поможет, так как установленный компакт-диск — это дополнения VirtualBox, для которых требуется установить заголовки ядра running . Если запущенных модулей ядра больше нет, есть вероятность, что и заголовки ядра не будут.

Кроме того, новым скомпилированным модулям Virtualbox некуда будет идти, поскольку каталог модулей .66 был очищен; и в любом случае они будут потеряны при следующей перезагрузке вместе с остальной частью ядра .66, как и в случае выше.

Понижение ядра будет работать некоторое время

Если мы удалим ядро ​​.67 и переустановим ядро ​​.66 с модулями вместо него, то на некоторое время все будет сложно. Не требуется перезагрузка, как в вышеприведенном выше решении «силовой ISO-модуль».

И перезагрузка ничего не потеряет, так как не установлено ядро ​​с исправлениями.

Но таким образом ядро ​​по-прежнему будет в списке «быть обновленным», и эта же проблема рано или поздно возникнет.

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

Перезагрузка, будет активировано более новое ядро ​​.67 и все его модули и заголовки.

Итак, после перезагрузки, Guest Additions будет работать, и обновление будет «принимать».

Двойная загрузка Windows 10 и Ubuntu 18.10.

Использовали UUI и Rufus, но ни один не работал. Есть ли какой-нибудь способ исправить это? Я не могу найти никакого ответа на этот вопрос в Интернете.

1 ответ

Я столкнулся с подобной проблемой, используя YUMI-2.0.5.9 в ходе виноделия в Ubuntu 18.04.1. Трудно поверить, но некоторые версии YUMI работают в этой конфигурации, когда целевая (FAT32) флешка установлена ​​перед ее запуском.

YUMI, однако, работает по-разному в зависимости от обстоятельств. В Win 10 он распаковал мой xubuntu-18.04.1-desktop-amd64.iso в папки. В Linux он просто скопировал iso на USB с этой структурой каталогов.


[an error occurred while processing the directive]
Карта сайта