<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - AltLinux/Sisyphus/admin/bootflash/VirtualBoot</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/admin/bootflash/VirtualBoot</link>
<description>History/revisions of FreeSource/AltLinux/Sisyphus/admin/bootflash/VirtualBoot</description>
<language>en-us</language>
<item>
<title>2008-03-14 21:33:56</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/admin/bootflash/VirtualBoot/show?time=2008-03-14+21%3A33%3A56</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".altlinux.sisyphus.admin.bootflash.virtualboot" href="http://freesource.info/wiki/AltLinux/Sisyphus/admin/bootflash/VirtualBoot&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;admin&amp;nbsp;/&amp;nbsp;bootflash&amp;nbsp;/&amp;nbsp;Virtual&amp;nbsp;Boot&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/admin/bootflash/VirtualBoot?time=2008-03-14+21%3A33%3A56">2008-03-14 21:33:56&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/admin/bootflash/VirtualBoot">2008-03-14 22:08:46&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;div class="action" style="float:right; width:250px">&lt;div class="action-content">Эта&amp;nbsp;страница была перенесена на&amp;nbsp;&lt;a href="http://altlinux.org/bootflash/VirtualBoot" target="_blank" title="" class="outerlink">altlinux.org&lt;/a>. Текст на&amp;nbsp;freesource.info заморожен.&lt;/div>&lt;/div>&lt;br />
&lt;span class="cite">это неоконченная статья.&lt;/span>&lt;br />
При&amp;nbsp;возне с&amp;nbsp;загрузочными флешками (и прочими USB-дисками) частенько приходится их&amp;nbsp;многократно тестировать. Если под&amp;nbsp;рукой нет&amp;nbsp;второго компьютера, неохота постоянно перезагружать свою рабочую станцию, или&amp;nbsp;просто хочется экзотической конфигурации компьютера, то&amp;nbsp;можно использовать виртуальные машины. Если удастся их&amp;nbsp;загрузить с&amp;nbsp;USB... Попробуем!&lt;br />
&lt;ul>&lt;li> медленная работа с&amp;nbsp;USB (эмулируется только UHCI-хост).&lt;/li>&lt;/ul>&lt;a name="h8368-1">&lt;/a>&lt;h1>VMWare&lt;/h1>
Достоинства виртуальной машины VMWare:&lt;br />
&lt;ul>&lt;li> высокая скорость работы с&amp;nbsp;USB-устройствами;
&lt;/li>&lt;li> невозможно работать с&amp;nbsp;образом флешки.&lt;/li>&lt;/ul>
С&amp;nbsp;VMWare нам&amp;nbsp;придётся использовать реальное USB-устройство, которое мы&amp;nbsp;будем передавать гостевой системе, при&amp;nbsp;этом из&amp;nbsp;host-системы оно&amp;nbsp;исчезнет. Кроме того, нам&amp;nbsp;придётся делать образ загрузочного мини-диска для&amp;nbsp;обхода невозможности грузиться с&amp;nbsp;USB-устройств. Но&amp;nbsp;высокая скорость работы с&amp;nbsp;флешками перевешивает все&amp;nbsp;эти неудобства.&lt;br />
Тестировалась VMWare шестой версии. &lt;br />
Итак, предположим, что&amp;nbsp;у&amp;nbsp;нас сконфигурирована виртуальная машина mytestvm, с&amp;nbsp;SCSI-диском(ами), и&amp;nbsp;есть готовая флешка.&lt;a name="h8368-2">&lt;/a>&lt;h3> Создание загрузочного диска &lt;/h3>
&lt;ul>&lt;li> Перейдём в&amp;nbsp;директорию нашей виртуальной машины: &lt;tt>$ cd&amp;nbsp;~/vmware/mytestvm&lt;/tt>
&lt;/li>&lt;li> Создадим контейнер устройства с&amp;nbsp;помощью утилиты vmware-vdiskmanager (посмотрите вывод &lt;s>help):&lt;/s>-&lt;tt>$ vmware-vdiskmanager -c -s 100Mb -a lsilogic -t 2 bootflash.vmdk&lt;/tt>&lt;br />
Здесь мы&amp;nbsp;создаём диск минимально возможного размера в&amp;nbsp;100Мб, тип&amp;nbsp;диска &amp;ndash; SCSI с&amp;nbsp;адаптером lsilogic (рекомендуется по&amp;nbsp;умолчанию), тип&amp;nbsp;2 (всё место под&amp;nbsp;файл диска распределено заранее).&lt;/li>&lt;/ul>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">это&amp;nbsp;неоконченная статья.&lt;br />
При&amp;nbsp;возне с&amp;nbsp;загрузочными флешками (и прочими USB-дисками) приходится частенько их&amp;nbsp;тестировать. Если под&amp;nbsp;рукой нет&amp;nbsp;второго компьютера, неохота постоянно перезагружать свою рабочую станцию, или&amp;nbsp;просто хочется экзотической конфигурации компьютера, то&amp;nbsp;можно использовать виртуальные машины. Если удастся их&amp;nbsp;загрузить с&amp;nbsp;USB... Попробуем!&lt;br />
&lt;ul>&lt;li> медленная работа с&amp;nbsp;USB (емулируется только UHCI-хост).&lt;/li>&lt;/ul>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-03-13 21:09:42</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/admin/bootflash/VirtualBoot/show?time=2008-03-13+21%3A09%3A42</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/admin/bootflash/VirtualBoot&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;admin&amp;nbsp;/&amp;nbsp;bootflash&amp;nbsp;/&amp;nbsp;Virtual&amp;nbsp;Boot&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/admin/bootflash/VirtualBoot?time=2008-03-13+21%3A09%3A42">2008-03-13 21:09:42&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/admin/bootflash/VirtualBoot?time=2008-03-14+21%3A33%3A56">2008-03-14 21:33:56&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Достоинства виртуальной машины QEMU:&lt;br />
&lt;ul>&lt;li> USB-устройства продолжают оставаться смонтированными в&amp;nbsp;хост-системе.
&lt;/li>&lt;li> медленная работа с&amp;nbsp;USB (емулируется только UHCI-хост).&lt;/li>&lt;/ul>
Итак, QEMU позволяет нам&amp;nbsp;работать как&amp;nbsp;с&amp;nbsp;готовыми флешками, так&amp;nbsp;и&amp;nbsp;с их&amp;nbsp;образами, что&amp;nbsp;позволяет обойтись от&amp;nbsp;постоянной заливки файлов на&amp;nbsp;флешку, что, теоретически, продлит её жизнь :) Из-за того, что&amp;nbsp;QEMU не&amp;nbsp;поддерживает загрузку с&amp;nbsp;USB-устройств, мы&amp;nbsp;подсовываем ей&amp;nbsp;флешку (имидж) дважды &amp;ndash; как&amp;nbsp;загрузочный жесткий диск, и&amp;nbsp;как подключённый к&amp;nbsp;системе USB-диск. Сначала BIOS/загрузчик гостевой системы начинает грузиться с&amp;nbsp;жесткого диска, затем, после того, как&amp;nbsp;модуль usb_storage обнаружит свои устройства, загрузка (stage2) продолжится уже&amp;nbsp;с&amp;nbsp;USB-диска. Загрузочный HDD&amp;nbsp;будет виден в&amp;nbsp;системе как&amp;nbsp;hda, флешка &amp;ndash; как&amp;nbsp;sda.&lt;a name="h8368-1">&lt;/a>&lt;h3>Загрузка QEMU с&amp;nbsp;реальной флешки&lt;/h3>
Здесь всё просто:&lt;br />
&lt;tt>$ qemu -hda /dev/sdc -boot c&amp;nbsp;-usb -usbdevice disk:/dev/sdc&lt;/tt>&lt;br />
Где&amp;nbsp;/dev/sdc &amp;ndash; устройство с&amp;nbsp;флешкой в&amp;nbsp;хост-системе. Прочие параметры запуска &amp;ndash; по&amp;nbsp;вкусу. Если нужно добавить в&amp;nbsp;гостевую систему жёсткий диск, сделайте его&amp;nbsp;имидж (man qemu-img или&amp;nbsp;просто dd&amp;nbsp;if=/dev/zero...), и&lt;br />
укажите параметр -hdb mydisk.img.&lt;a name="h8368-2">&lt;/a>&lt;h3>Загрузка QEMU с&amp;nbsp;образа флешки&lt;/h3>
Благодаря тому, что&amp;nbsp;параметам -hda и&amp;nbsp;-usbdevice можно подсовывать не&amp;nbsp;только устройства, но&amp;nbsp;и любые файлы, мы&amp;nbsp;можем в&amp;nbsp;нашем тестировании обойтись вовсе без&amp;nbsp;флешки.&lt;a name="h8368-3">&lt;/a>&lt;h4>Создание образа флешки:&lt;/h4>
&lt;ul>&lt;li> Создаём файл-контейнер достаточного размера. Соглашаясь с&amp;nbsp;виртуальной геометрией устройства в&amp;nbsp;32 сектора на&amp;nbsp;дорожку, по&amp;nbsp;512 байт каждый, 64 головки мы&amp;nbsp;получаем размер цилиндра равным мегабайту, что&amp;nbsp;очень удобно для&amp;nbsp;рассчетов. Так, для&amp;nbsp;создания контейнера для&amp;nbsp;гигабайтной флешки, мы&amp;nbsp;выполняем: &lt;br />
&lt;tt>$ dd&amp;nbsp;if=/dev/zero of=flash.img bs=$((512*32*64)) count=1K&lt;/tt>
&lt;/li>&lt;li> Прописываем в&amp;nbsp;файл контейнера Partition Table:&lt;br />
&lt;tt>$ /sbin/fdisk flash.img&lt;/tt>
&lt;ul>&lt;li> назначаем виртуальную геометрию: &lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="13" readonly="readonly">You must set cylinders.
You can do this from the extra functions menu.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): x
Expert command (m for help): s
Number of sectors (1-63, default 63): 32
Warning: setting sector offset for DOS compatiblity
Expert command (m for help): h
Number of heads (1-256, default 255): 64
Expert command (m for help): c
Number of cylinders (1-1048576): 1024
Expert command (m for help): r&lt;/textarea>&lt;!--/notypo-->
&lt;/li>&lt;li> создаём раздел типа FAT32 (C) и&amp;nbsp;делаем его&amp;nbsp;активным:&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="15" readonly="readonly">Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1024, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1024, default 1024):
Using default value 1024
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): c
Changed system type of partition 1 to c (W95 FAT32 (LBA))
Command (m for help): a
Partition number (1-4): 1
Command (m for help): p
Disk flash.img: 0 MB, 0 bytes
64 heads, 32 sectors/track, 1024 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
    Device Boot      Start         End      Blocks   Id  System
flash.img1   *           1        1024     1048560    c  W95 FAT32 (LBA)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.&lt;/textarea>&lt;!--/notypo-->
&lt;/li>&lt;/ul>&lt;/li>&lt;li> Записываем загрузчик MBR&amp;nbsp;(если у&amp;nbsp;вас в&amp;nbsp;системе еще&amp;nbsp;не&amp;nbsp;стоит пакета syslinux &amp;ndash; поставьте его!):&lt;br />
&lt;tt>$ dd&amp;nbsp;if=/usr/lib/syslinux/mbr.bin of=flash.img conv=notrunc&lt;/tt>
&lt;/li>&lt;li> Делаем контейнер для&amp;nbsp;VFAT-раздела:
&lt;ul>&lt;li> выясняем размер:&lt;br />
&lt;tt>$ echo -e &amp;laquo;x\np\n&amp;raquo; |/sbin/fdisk flash.img&lt;/tt>&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="7" readonly="readonly">Disk flash.img: 64 heads, 32 sectors, 0 cylinders
Nr AF  Hd Sec  Cyl  Hd Sec  Cyl     Start      Size ID
 1 80   1   1    0  63  32 1023         32    2097120 0c
 2 00   0   0    0   0   0    0          0          0 00
 3 00   0   0    0   0   0    0          0          0 00
 4 00   0   0    0   0   0    0          0          0 00&lt;/textarea>&lt;!--/notypo-->&lt;br />
Запоминаем цифры 32 в&amp;nbsp;колонке Start и&amp;nbsp;2097120 в&amp;nbsp;Size. Это&amp;nbsp;смещение и&amp;nbsp;размер нашего раздела в&amp;nbsp;512-байтных блоках.
&lt;/li>&lt;li> Делаем файловую систему (man mkfs.vfat). Здесь мы&amp;nbsp;должны указать размер в&amp;nbsp;1K-блоках, поэтому &lt;br />
&lt;tt>$ /sbin/mkfs.vfat -v -C flash1.vfat $((2097120/2))&lt;/tt>
&lt;/li>&lt;/ul>&lt;/li>&lt;li> Создаём точку монтирования и&amp;nbsp;монтируем туда свежесозданный контейнер раздела:&lt;br />
&lt;tt>$ mkdir mybootflash&lt;/tt>&lt;br />
&lt;tt># mount -o loop,fmask=0111,dmask=0000,quiet flash1.vfat mybootflash&lt;/tt>
&lt;/li>&lt;li> Копируем всё, что&amp;nbsp;нам надо, в&amp;nbsp;смонтированный образ раздела флешки, не&amp;nbsp;забывая про&amp;nbsp;файлы syslinux'а. 
&lt;/li>&lt;li> Отмонтируем контейнер раздела
&lt;/li>&lt;li> Записываем загрузчик syslinux: &lt;br />
&lt;tt>$ syslinux flash1.vfat&lt;/tt>&lt;br />
Если у&amp;nbsp;нас для&amp;nbsp;хранения всех файлов syslinux'а выделена отдельная директория на&amp;nbsp;флешке, то&amp;nbsp;лучше и&amp;nbsp;файл загрузчика ldlinux.sys прописать туда же, указав параметр -d (например, &lt;tt>$ syslinux -d /syslinux flash1.vfat&lt;/tt>
&lt;/li>&lt;li> Теперь мы&amp;nbsp;записываем готовый контейнер раздела внутрь контейнера устройства, по&amp;nbsp;ранее запомненному смещению в&amp;nbsp;32 сектора:&lt;br />
&lt;tt>$ dd&amp;nbsp;if=flash1.vfat of=flash.img bs=512 seek=32 conv=notrunc&lt;/tt>&lt;/li>&lt;/ul>
Всё, образ флешки готов! В&amp;nbsp;дальнейшем, при&amp;nbsp;изменении содержимого, и&amp;nbsp;без необходимости увеличивать размер устройства, можно повторять операции, начиная с&amp;nbsp;монтирования контейнера раздела, автоматизировав эту&amp;nbsp;операцию по&amp;nbsp;вкусу.&lt;a name="h8368-4">&lt;/a>&lt;h4>Загрузка с&amp;nbsp;образа флешки&lt;/h4>
&lt;tt>$ qemu -hda flash.img -boot c&amp;nbsp;-usb -usbdevice disk:flash.img&lt;/tt>&lt;br />
Даже немного быстрее получится :)&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Достоинства виртуальной машины QEMU в&amp;nbsp;разрезе загрузки USB-устройств:&lt;br />
&lt;ul>&lt;li> USB-устройства продолжают оставаться смонтированными в&amp;nbsp;хост-системе
&lt;/li>&lt;li> медленная работа с&amp;nbsp;USB (емулируется только UHCI-хост);
&lt;/li>&lt;li> отсутствует эмуляция SCSI-устройств.&lt;/li>&lt;/ul>
Итак, QEMU позволяет нам&amp;nbsp;работать как&amp;nbsp;с&amp;nbsp;готовыми флешками, так&amp;nbsp;и&amp;nbsp;с их&amp;nbsp;образами, что&amp;nbsp;позволяет обойтись от&amp;nbsp;постоянной заливки файлов на&amp;nbsp;флешку, и, теоретически, продлит её жизнь :) Из-за того, что&amp;nbsp;QEMU не&amp;nbsp;поддерживает загрузку с&amp;nbsp;USB-устройств, мы&amp;nbsp;подсовываем ей&amp;nbsp;флешку (имидж) дважды &amp;ndash; как&amp;nbsp;загрузочный жесткий диск, и&amp;nbsp;как подключённый к&amp;nbsp;системе USB-диск. Сначала BIOS/загрузчик гостевой системы начинает грузиться с&amp;nbsp;эмулируемого жесткого диска, затем, после обнаружения модулем usb_storage всех USB-дисков, загрузка продолжается уже&amp;nbsp;с&amp;nbsp;эмулируемого USB-диска.&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
