Пользователь
0,0
рейтинг
19 августа 2011 в 13:36

Администрирование → Установка Ubuntu на реальный жёсткий диск через VirtualBox

По каким-то причинам может получиться так, что нужно установить Ubuntu на компьютер, на котором установлен Windows (в данном случае это был Windows Server 2003). Почему речь именно о Windows? Под Линуксом есть и другие способы решения, есть debootstrap и chroot, а на Windows возможных вариантов для такого манёвра остаётся меньше.

Но обычный метод установки (загрузиться с LiveCD/LiveUSB, произвести установку, настроить всё, перезагрузиться снова) не всегда подходит. Почему не всегда? Потому что может быть так, что доступ к компьютеру только удалённый (в данном случае это был RDP-сервер в Windows), а физический доступ только через другого человека, и редкий (раз в сутки). Да и потом сколько бы от него потребовалось действий, если делать обычным способом — вставить флэшку/диск, загрузиться, подождать, пока предложат попробовать использовать дистрибутив, выбрать этот вариант, потом настроить удалённый доступ (в Убунте даже SSH-сервер по умолчанию не установлен — никогда, кстати, не понимал почему, но факт), и только после этого идти по своим делам. А так единственное, что потребовалось от человека — это поменять порядок загрузки с жёстких дисков в BIOS.

Кстати, теоретически, можно попробовать обойтись даже без этого, если распаковать на диск C:\ в Windows grldr из пакета grub4dos, создать там же menu.lst (где с помощью chainloader загрузиться с другого жёсткого диска), и добавить в C:\Boot.ini пункт «C:\grldr=«GRUB»», после чего выбрать этот пункт по умолчанию. Тогда достаточно просто перезагрузить компьютер, и он перезагрузится в Ubuntu, где на тот момент уже будет SSH. Только нужно не забыть добавить параметр timeout в конфигурационный файл menu.lst — иначе загрузка не будет совершена автоматически (GRUB будет ждать, пока кто-нибудь нажмёт Enter).

Помимо удалённой установки есть ещё одно важное применение этого метода — представьте, что вам нужно сократить время, которое сервер не будет функционировать с точки зрения пользователя, к минимуму. И вы можете это сделать. От того, что вы ставите Ubuntu в виртуальной машине, работа сервера не нарушится, и вы сможете, перезагрузив виртуальную машину после установки, произвести все необходимые изменения, включая создание пользователей, установку и настройку SSH, возможно веб-сервера, почтового сервера, FTP и всего остального, что может понадобиться. А потом вы просто перезагружаете компьютер. И всё то, что работало на Windows, теперь работает на Ubuntu: полторы минуты, которые компьютер будет перезагружаться, совсем не так заметны, как несколько часов, в течение которых вы бы это всё постепенно настраивали и включали.


А теперь о самой установке



В VirtualBox есть очень полезная возможность. Помимо виртуальных жёстких дисков к виртуальной машине можно подключить самый настоящий, реальный жёсткий диск.

Для этого нужно создать для жёсткого диска специальный файл в формате vmdk.

Этот файл занимает около 1 кибибайта, хотя можно было бы подумать, что он займёт размер, сравнимый с самим жёстким диском. :)

Откройте cmd.exe и выполните следующее.

cd «C:\Program Files\Oracle\VirtualBox»

VBoxManage internalcommands createrawvmdk -filename c:\disk.vmdk -rawdisk \\.\PhysicalDrive0

Вместо PhysicalDrive0 может быть, например, PhysicalDrive1 — в зависимости от порядкового номера жёсткого диска.

Кстати, есть даже возможность использовать конкретные разделы физического жёсткого диска, об этом можно подробнее почитать в документации по VirtualBox.

После того, как вы создали vmdk-файл, вы можете создать новую виртуальную машину и подключить к ней этот жёсткий диск.

Открываем GUI VirtualBox, нажимаем «New», после чего вводим имя виртуальной машины и выбираем OS Type (Linux, Ubuntu). Выбираем количество памяти (хорошо, когда её не меньше гибибайта, но надо исходить из того, сколько памяти у самого компьютера, и насколько она используется). Затем, в разделе Virtual Hard Disk нужно выбрать «Use existing hard disk». Теперь можно нажать «Finish» и загрузить новую виртуальную машину. Она будет использовать выбранный физический диск компьютера. Остаётся подключить к ней ISO-образ Ubuntu и произвести установку (после чего перезагрузить виртуальную машину и сделать все необходимые изменения — чтобы на самом компьютере загружать уже настроенную систему).

Жёсткий диск подключается полноценно и целиком — это означает, что через виртуальную машину установочная программа Ubuntu успешно создала таблицу разделов, записала MBR и разместила все необходимые файлы.

Такой получился способ установки. Теперь, если будете менять операционную систему с Windows на Ubuntu на каком-нибудь сервере или, скажем, удалённо на компьютере товарища — по его просьбе, конечно же :) — то можете воспользоваться этим вариантом.
Арсений @MaGIc2laNTern
карма
232,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (38)

  • 0
    Что-то не понял, Вы предлагаете ставить Linux на ntfs?
    • +8
      Вы и правда не поняли. :)

      Не важно, на каком разделе стоит Windows — в виртуальной машине в данном примере используется отдельный, реальный жёсткий диск. И этот жёсткий диск из Linux можно разбить на разделы как угодно (конкретно я создавал ext3-раздел, но можно любой другой).
      • +1
        Теперь понятно. Просто из текста это не было явно. Про отдельный хдд вообще не увидел нигде :)
        • +8
          Возможно, вопрос терминологии. :)

          Я обычно hard disk partition называю «раздел», а сам hard disk drive называю «жёсткий диск».
      • –2
        А чем не угодил wubi?
        • +1
          А у wubi есть недостатки. Во-первых, это всё же установка в виртуальный раздел: раздел подкачки нормально не сделаешь, то есть сделаешь, конечно, если переразобьёшь таблицу разделов, но тогда уже какой смысл, да и в принципе работать будет медленнее. Плюс ОС будет зависеть от раздела другой ОС (у NTFS, в свою очередь, тоже есть свои недостатки). Кроме того, на моей практике wubi оказался ненадёжным решением, подходящим только для временной установки Ubuntu: первое же обновление ядра привело к тому, что система перестала загружаться.
          • +1
            Ну так это в случае установки на раздел ntfs, Вы же на отдельный диск ставите, так какие сложности? В wubi выбрать диск не так уж и сложно :)
  • +1
    SSH не предустановлен из соображений безопасности.
    • +3
      А в чём увеличение безопасности? Разве было бы хуже, если бы он, например, был установлен, но не запускался по умолчанию?
      • +3
        Ну а как это поможет в ситуации, когда нужен доступ по ssh «из коробки»? Ubuntu ориентирован на десктоп, ssh многим не нужен, зачем мертвые пакеты
    • +2
      Меня эта категоричность поразиза, сразу как прочитал этот набор советов.
      совет первый: на декстопе sshd не нужен. удалите его
  • +1
    Т.е. я могу загрузить уже установленный Linux на ext4? Если да, то как мне выбрать конкретный раздел? В английском не силён
  • 0
    MaGIc2laNTern, а вы потом грузили на реальном железе эту систему? Оборудование то изменится, как минимум настройки сети будут дефолтные, если вообще будут, fstab нужно будет ещё ручками править и т.д. В общем вероятность того что после удалённой перезагрузки вы успешно попадёте в систему через SSH стремится к нулю.
    • 0
      Или контроллер дисков не захочет в AHCI режиме работать или наоборот только в AHCI и будет :) а это в BIOS лезть. Или ядро загрузится только с noapic. Да всё что угодно. Тут нужен KVM-over-IP полюбому.
    • 0
      В статье написано, что после установки перезагружается виртуальная машина, и конфиги можно править хоть до посинения
      • 0
        Так я не спорю что конфиги _в виртуальной машине_ можно править. Но о том что конкретно править ты узнаешь только после попытки загрузки на _реальном_ железе. Ты ж в виртуалке по lspci не увидишь реального железа явно.
    • +5
      Мне кажется, вы ошибаетесь. Я знаю, что в Windows возможны проблемы с загрузкой той же ОС на другой конфигурации (и даже они решаются). В Linux я таких проблем не встречал, хотя пробовал переставлять жёсткий диск с Linux между совершенно разными компьютерами. Исключение, разумеется — попытка запуска 64-разрядной ОС на процессоре, не поддерживающим 64-разрядные инструкции. Или, ещё одно исключение — пересобранное ядро, настроенное на конкретную конфигурацию (но это, сами понимаете, не тот случай).

      Отвечая на Ваш вопрос — да, эта система абсолютно без проблем загрузилась на реальном железе, без какой-либо перенастройки. Она сама получила сетевые настройки по DHCP и запустила SSH-сервер, к которому я сразу смог подключиться через Интернет.
    • +5
      Видите, похоже, Ubuntu отлично адаптируется к любой конфигурации аппаратной платформы, на которой её запускают. fstab привязывается к UUID разделов, а не указывает на конкретный жёсткий диск, контроллеры дисков поддерживаются различные (я вообще не помню, чтобы мне для чего-либо кроме Windows необходимо было лезть в настройки BIOS и переключать режим контроллера), и цепляются автоматически.

      Однако мне интересно, на каком компьютере это может не сработать. Похоже, что на обычном компьютере это должно сработать в любом случае, но бывают всякие необычные материнские платы и прочее. Если вы проведёте эксперимент и обнаружите конфигурацию, на которой это не работает, мне будет очень интересно об этом узнать (думаю, не только мне).
      • +3
        Да пожалуйста. На нескольких матернках ASUS P5чтототам в упор не видились диски без AHCI. Вчера приносили какой-то леново где видео от ATI отправляет ядро 2.6.35-28 на стадии загрузочной заставки в ступор, при этом 2.6.35-22 прекрасно работает. Ну лаптопы это вообще ад…
        • +1
          Ох, да. Я вот когда на Ваш вопрос отвечал, тоже как раз про лаптопы подумал. Но у тут-то случай был проще — уже не самая новая, десктопная материнская плата, так что на ней всё запустилось без проблем.
      • 0
        Это вопрос конфигурации ядра. Как я понимаю, для LiveCD ядро собирается со всевозможными модулями поддержки железа. При сборке Gentoo на целевой машине или даже в виртуалке можно ядро собрать со всеми модулями и оно при загрузке запустит нужные модули. Но если задаться оптимизацией по размеру и времени старта, то придется на целевом железе с помощью pciutils определить необходимый набор модулей.
  • 0
    Я уже обрадовался что теперь не надо будет в винду перезагружаться по мелочам, а она при загрузке с синим экраном падает…
    • +1
      А это уже более сложная ситуация (как я уже писал в комментарии выше, Windows более придирчив к изменениям конфигурации компьютера).

      Но обсуждения такого варианта загрузки в Интернете есть. Поищите в Гугле по запросу «virtualbox windows from partition». Например, вот первая ссылка.
    • 0
      В таком варианте работают только Vista и выше, предыдущие жестко привязаны к железу.
      • 0
        У меня Windows 7 Pro (x86)
        • 0
          Вас спасет GRUB. Могу скинуть пример конфигурации с ноута жены, там как раз дуалбут Win/Linux, при этом Kubuntu может грузиться в виртуалке с Host-винды, соответственно, Windows может грузиться как Guest в Host-Linux'е.
          • 0
            У меня стоит в дуал буте с Ubuntu 11.04 через grub2. А из ubuntu в виртуалке реальная винда не хочет грузиться, правда я не сильно старался… Ubuntu из Host винды грузить не пробовал, потому что в этом смысла нет (неудобно пользоваться будет).
            • 0
              Странно. У меня в такой конфигурации все получалось отлично. Единственное что — активация слетала в винде, после переактивации все ОК: на реальном железе свой ключ, на виртуальном — свой. Может быть, стоит поиграться с настройками VirtualBox'а, например с настройками жесткого (SATA, IDE), битности (32, 64) и т.д.?
  • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      Но это же не позволит вам включить SSH (чтобы не потерять удалённую связь с компьютером после перезагрузки) или произвести другие необходимые настройки, правильно?

      А кроме того, вы таким образом установите Ubuntu на виртуальный раздел, который находится на другом разделе жёктого диска, а не на отдельный раздел.
      • НЛО прилетело и опубликовало эту надпись здесь
        • +1
          Я верю, что можно (и это превосходно, потому что перед тем, как увидишь 4K, думаешь, что это тоже нереально). Но вопрос ведь ещё во времени. Wubi явно не предоставляет штатные средства для переконфигурирования устанавливаемой системы. И, судя по документации на ubuntu.com, поместить таким образом установленную систему на физический раздел можно уже из самой системы, но не средствами Wubi.

          VirtualBox в данном случае инструмент, который позволяет выполнить эту задачу очень быстро по сравнению с другими методами.
  • 0
    Таким образом устанавливаются очень многие операционки практически из любого хоста, мне удавалось устанавливать всевозможные Linux'ы, FreeBSD, Mac OS X (10.5, 10.6), Windows Vista/7/8/2008. Очень удобный способ.
  • 0
    Это описано в мануале по VirtualBox — www.virtualbox.org/manual/ch09.html#rawdisk. Называется — Raw Disk Access. Снова статья для тех, кто «этих ваших мануалов не заканчивал, ртфм не расшифровывал»?
    • 0
      Я вот читал мануал, но попробовал реализовать это только раз на XP — не завелось и подумал, что в других сочетаниях хост/гость это также работать не будет.
  • 0
    Способ установки имеет право на существование. Хотя конфигурация железа все-таки меняется сильно…
    Я с помощью Virtual Box и прямого доступа к диску запускал хакинтош для того чтоб развернуть установочный образ хакинтоша на отдельный раздел диска, а потом уже запустить установку этого хакинтоша на реальном компе. Это избавляет от необходимости иметь SATA CD-ROM (т.е. установка запускается прямо с харда), кроме того, что намного быстрее.
  • 0
    У меня были ситуации когда надо было поставить систему на компьютер у которого не было ни CD/DVD ни USB. Я снял с него диск и подключил на другой машине в virtualbox'е. Установил Ubuntu и просто вернул диск на место.
    • +1
      Так можно и с Виндой: проходите первую часть (распаковка файлов), и, когда машина уходит в ребут — выключаете и переставляете винт на целевую машину. Я так ОСь на машине с запароленным БИОСом ставил.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.