<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Работа с загружаемым виртуальным диском, а не с CD-ISO образом]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=29040&amp;type=atom" />
	<updated>2013-07-08T23:36:34Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=29040</id>
		<entry>
			<title type="html"><![CDATA[Работа с загружаемым виртуальным диском, а не с CD-ISO образом]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=353398#p353398" />
			<content type="html"><![CDATA[<p><strong>Создание в виртуальной машине из CD-ISO образа загружаемого виртуального диска VMDK<br /></strong><br />0. Здесь речь о некоторых особенностях использования Линукс систем. Установка Windows выполняется (как правило) с установочного дистрибутивного диска, создает виртуальный жесткий диск и проблем почти не имеет. Сама же виртуальная машина интересна тем, что в ней можно установить различные системы (GUEST) и переключаться между ними не выходя из главной (HOST)системы, в которой виртуальная машина загружена. Даже в 32-битном Линуксе пользователю доступно 3.5 ГБ оперативной памяти, а при условии выделения каждой GUEST-OS памяти по 256--512 МБ можно получить достаточную мобильность без перезагрузки компьютера - это все конечно &quot;азы&quot;.</p><p>1. Работа в виртуальной машине (Vmware Player, Oracle VirtualBox) настроена (в первую очередь) на использование CD-ISO образа той или иной операционной системы.<br />&nbsp; &nbsp;Образы ОС в виде Live-CD (DVD) предусматривают установку ОС на реальный раздел физического жесткого диска (HDD или &quot;винчестера&quot;), но из виртуальной машины это не всегда возможно, а в случае &quot;маленьких&quot; Linux-OS это особенно проблематично. Кроме того &quot;плодить&quot; разделы на физическом жестком диске не всегда возможно/нужно.</p><p>2. Но виртуальные машины имеют в своем составе так называемый виртуальный жесткий диск, который устанавливается по умолчанию как устройство <strong>SCSI-0.0 Hard-Disk</strong>. При этом испытуемую ОС чаще всего можно установить только на устройство <strong>IDE Hard-Disk</strong>.</p><p>3. Надо удалить (или не удалять) устройство SCSI Hard-Disk и добавить новое устройство <strong>IDE Hard-Disk</strong>. <br />&nbsp; &nbsp;IDE необходимо для того, чтобы из загруженной с CD-ISO образа виртуальной машины (с виртуальной ОС) без проблем перенести эту машину-ОС на то, что позволит настаивать, сохранять изменения и повторно загружать систему и даже сохранять ее различные варианты.</p><p>4. Исходный CD-ISO образ загруженный в виртуальной машине изменить невозможно. Но можно его &quot;развернуть&quot; на виртуальный диск, сконфигурировать и сохранить в измененном виде. Для этого виртуальный диск надо &quot;оформить&quot; также, как и реальный физический. То есть создать на нем таблицу разделов, создать на нем хотя бы один раздел (ext2/ext3/ext4 для Unix-Linux, fat32/ntfs для Windows). Для этого нужна программа <strong>gparted</strong> (или аналог).</p><p>5. Скопировать загруженную систему на вновь созданный раздел виртуального диска <strong>/dev/sda1</strong> - здесь надо понимать, что реально необходимо, а что лишнее. Советов дать не могу - надо читать, думать и конечно пробовать.</p><p>6. Теперь этот диск надо сделать загружаемым - для этого есть как минимум <strong>lilo, syslinux/isolinux, grub</strong>. В связи с &quot;широким распространением&quot; линукс-загрузчика <strong>grub-2</strong> и из соображений совместимости с последними &quot;большими&quot; Линуксами, выбран именно он (хотя использование <strong>grub-legacy</strong> (просто grub), или grub4dos много проще и понятней).<br />&nbsp; &nbsp;Диск монтируется в <strong>/mnt</strong> и по этому &quot;адресу&quot; в него переписывается/копируется стандартный набор /bin /etc /home /root ... ... ..., <strong>/boot</strong> в случае Live-CD может отсутствовать, тогда надо добавить его вручную.<br />&nbsp; &nbsp;Затем на этот диск (имя его скорее всего будет <strong>/sda</strong> - так устроен gparted) устанавливается загрузчик. Файл конфигурации загрузчика вероятно придется создавать вручную, но даже если установка загрузчика создаст файл <strong>grub.cfg</strong> (что в виртуальной машине не всегда происходит) его все равно придется править и помещать в &quot;правильное&quot; место.<br />&nbsp; &nbsp;Авторы загрузчика grub-2 по всей видимости предполагают, что система (каноническая) уже установлена, имеет /boot /etc и ждет &quot;оплодотворения&quot; в эти директории от загрузчика, а это не всегда так в случае с маленькими Линуксами (они нередко устроены несколько иначе, чем например Linux-Ubuntu - хотя бы в части <strong>/dev</strong>).</p><p>7. Важный момент - как именовать новый диск и новый раздел на нем для загрузчика в новом файле <strong>grub.cfg</strong> - вот реальный пример этого файла для работы со сверх-маленьким Live-линуксом на основе ядра 3.2.0 от Юбунты:<br />&nbsp; &nbsp; <span class="bbu">для загрузки в виртуальной машине CD-ISO образа</span><br /></p><div class="codebox"><pre><code>    menuentry &quot;3 SFSL 121114 (Ubuntu-12.10)&quot; {
        set root=&#039;(cd)&#039;
        linux /CDlinux/_sfsl/live/vmlinuz320  &lt;ключи загрузки ядра пропускаю&gt;
        initrd /CDlinux/_sfsl/live/initrd320.img
    }</code></pre></div><p>&nbsp; &nbsp;<span class="bbu"> а для загрузки новоиспеченного виртуального диска (CD-ISO образ отключается за ненадобностью)</span><br /></p><div class="codebox"><pre><code>     menuentry &quot;3 SFSL 121114 (Ubuntu-12.10)&quot; {
        set root=(hd0,1)
        linux /CDlinux/_sfsl/live/vmlinuz320 root=(hd0,1) &lt;ключи загрузки ядра пропускаю&gt;
        initrd /_sfsl-121114/live/initrd320.img
    }</code></pre></div><p>&nbsp; &nbsp;Установка переменной для обозначения корня диска отличается и если <strong>set root=&#039;(cd)&#039;</strong> необходим для загрузки &quot;никакого&quot; диска с образа CD-ISO, то для загрузки IDE-Hard-Disk (который в системе <strong>/dev/sda --&gt; sda1</strong>) нужен канонический <strong>set root=(hd0,1)</strong> Если поменять их местами, то обе загрузки станут нерабочими.</p><p>8. Виртуальный <strong>IDE-Hard-Disk</strong>, имеющий таблицу разделов, из VMware-Player можно примонтировать в материнскую (HOST) <strong>/mnt</strong> и смотреть и править, если что-то не так.</p><p>9. Для более продуктивной работы с готовыми Live-CD-ISO образами можно/нужно распаковать их во временный рабочий каталог на HOST-машине (например архиватором <strong>file-roller</strong> или <strong>peazip</strong>) и в процессе изменений-совершенствования паковать в CD-ISO образ снова и загружать в виртуальную машину. Вот как это может выглядеть:<br />&nbsp; &nbsp;<strong>/home/&lt;имя_пользователя&gt;/&quot;Рабочий стол&quot;/cd-dir/&lt;распакованный_ISO-образ&gt;</strong><br />&nbsp; &nbsp;<strong>/cd-dir/mkisofs.sh</strong> такого содержания (пример для загрузчика <strong>eltorito-grub</strong> - это <strong>grub-2</strong>):<br /></p><div class="codebox"><pre><code>    #!/bin/bash
    #
    # build CD-sfsl ISO image

    MKISO=`type -p genisoimage 2&gt;/dev/null` ||
    MKISO=`type -p mkisofs 2&gt;/dev/null` || {
      type -a xorriso 2&gt;/dev/null &amp;&amp;
      set `xorriso --version 2&gt;/dev/null |
           sed -n &#039;s/^xorriso version\s*:\s*//p&#039; |
           tr . &quot; &quot;` 0 &amp;&amp;
      [ $1 -ge 1 ] &amp;&amp;
      [ $2 -ge 1 ] &amp;&amp;
      MKISO=&quot;xorriso -as mkisofs&quot;
    } || {
      echo &quot;Sorry, genisoimage, mkisofs, or xorriso 1.1.0+ is needed.&quot;
      exit 1
    }

    $MKISO    -v -R -J -joliet-long -input-charset utf8 \
        -c boot.cat -hide boot.cat -b CDlinux/boot/i386-pc/eltorito.img \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        -o /tmp/sfsl121114grub2.iso `dirname &quot;$0&quot;`</code></pre></div><p>&nbsp; &nbsp;Этот скрипт пытается использовать <strong>genisoimage</strong>, <strong>mkisofs</strong>, или <strong>xorriso</strong> для создания CD-ISO образа из содержимого каталога <strong>/cd-dir</strong> и пишет его в <strong>/tmp</strong> под именем <strong>sfsl121114grub2.iso</strong> (в данном примере).<br />&nbsp; &nbsp;Далее этот образ можно переместить, если надо, а можно из /tmp загружать в виртуальную машину.<br />&nbsp; &nbsp;Загрузчик <strong>eltorito-grub</strong> взят из дистрибутива (Live-CD-ISO) CDlinux, который и сам по себе интересен:<br />&nbsp; <a href="http://%20http://www.cdlinux.info/wiki/doku.php/"> http://www.cdlinux.info/wiki/doku.php/</a></p><p>10. Упомянутый выше для примера дистрибутив SFSLinux еще более интересен:<br />&nbsp; &nbsp;<a href="http://uco.puppyrus.org/forum/thread176.html">http://uco.puppyrus.org/forum/thread176.html</a><br />&nbsp; &nbsp;Автор скромно, но с юмором назвал его так: &quot;SFSLinux. Самоделка. Попытка скрестить Debian с Puppy&quot;. Создал несколько версий от CrunchBang до Linux-Ubuntu 12.10 и переключился на другие задачи.<br />&nbsp; &nbsp;А интересен дистрибутив своей идеологией и производными от нее возможностями. К ядру системы подключается один или более модуль, упакованный в squashfs. Модулей может быть много или мало. Их можно создавать в системе самому, можно использовать готовые sfs-пакеты из репозитория Puppy-Linux, а можно устанавливать готовые deb-пакеты из репозиториев Debian и Ubuntu.<br />&nbsp; &nbsp;Можно сохранять содеянное, а можно завершать работу без сохранения. И много чего еще интересного. Но Linux-Ubuntu 12.10 &quot;уложенная&quot; в ISO-образ размером 180 MB вызывает удивление и восхищение. Можно почитать от самого автора. Сейчас он тоже самое проделал с Arch-linux (но есть реализации и с другими &quot;донорами&quot;):<br />&nbsp; &nbsp;<a href="http://forum.puppyrus.org/index.php/topic,13843.0.html">http://forum.puppyrus.org/index.php/topic,13843.0.html</a></p><p>11. Тоже самое проделал с дистрибутивом Slitaz-Linux 4.0 - погонял несколько раз <strong>cd-dir &lt;--&gt; CD-ISO</strong> и перенес на виртуальный IDE-Hard-Disk - файл *.vmdk подключается и в VirtualBox машине.<br />&nbsp; &nbsp;В Slitaz-Linux есть gparted - им отформатировал виртуальный диск. Загрузчик в Slitaz-Linux по умолчанию grub-legacy, воспользовался им для установки загрузчика на виртуальный диск /dev/sda. Slitaz имеет свой встроенный установщик на HDD/FlashDisk с его помощью установил систему на виртуальном диске.<br />&nbsp; &nbsp;Выключение виртуальной машины. Отключение в настройках загрузки с CD-ISO образа и включение загрузки с виртуального диска IDE Hard-Disk, на котором теперь стоит полноценная система Slitaz-Linux с загрузчиком. Загрузившись с такого диска можно дальше настраивать/переделывать систему под свои нужды, можно сохранять промежуточные результаты в архив на HOST-диске. Можно такой диск (а это файл *.vmdk) переносить на флэшке в другие места, передавать друзьям (на новом месте нужна установленная виртуальная машина).</p><p>12. Все это можно выполнить и в <strong>VMware</strong> и в <strong>VirtualBox</strong> и при этом нет нужды устанавливать дополнения типа wm-ware-tools. Выбор машины - дело вкуса/привычки.</p><p><span class="bbu">Модератору: Если такая тема уже освещалась, а я не увидел, то смело удаляйте.</span></p>]]></content>
			<author>
				<name><![CDATA[sklimkin]]></name>
				<uri>https://linuxforum.ru/profile.php?id=18807</uri>
			</author>
			<updated>2013-07-08T23:36:34Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=353398#p353398</id>
		</entry>
</feed>
