Монтирование виртуального диска ubuntu
Обновлено: 07.07.2024
Возникла необходимость обеспечить работу Linux как на виртуальной машине (VirtualBox), так и на реальном железе. После долгих поисков и попыток запускать Linux с виртуального диска формата VHD, по примеру Windows, которые либо слишком сложны, либо не работают, я пришел к достаточно простому способу сделать это. Правда не из дисков в формате VHD, а из образа раздела диска в формате VMDK.
Linux возможно загрузить из образа раздела. Теперь нужно сделать так, чтобы у нас был и образ диска, который понимает VirtualBox и образ раздела, который может загрузить grub.
Далее расписано, как это можно сделать быстро и без лишней головной боли.
Все что далее, сделано из Windows.
Создаем новый диск фиксированного размера в формате vmdk:
Имеем созданные файлы:
- test1.vmdk — дескриптор диска, текстовый файл
- test1-flat.vmdk — файл с образом диска
Теперь необходимо в начало диска добавить еще один кусок размером 1M.
Создаем файл test1-boot.vmdk размером 1M:
В test1.vmdk меняем createType="custom" на createType="monolithicFlat" . Это будет означать, что диск состоит из нескольких файлов.
Добавляем test1-boot.vmdk в test1.vmdk , первым. После добавления test.vmdk должен выглядеть как-то так:
где 2048 — это 2048*512=1048576 байт (1M) для этой части диска.
Создаем виртуальную машину для установки Linux, подключаем к ней диск test1.vmdk и ставим ubuntu/kubuntu/xubunu. Я ставил только эти дистрибутивы, начиная с версий 18.04 до последней (еще не вышедшей) 21.04, все остальное не проверял.
Особенность при установке: должен быть создан только один раздел на виртуальном диске и должен он быть на границе 1M. Это поведение по умолчанию при ручном создании раздела.
Загрузчик должен быть установлен на диск /dev/sda, а не на раздел /dev/sda1. Это тоже поведение по умолчанию.
После того, как все установили, перезагружаемся в VirtualBox, чтобы убедится, что Linux загружается.
Теперь загрузим только что установленный Linux на реальном железе. Проще всего сделать это с использованием загрузочной флешки.
Создаем файл ventoy\ventoy_grub.cfg на разделе данных флешки со следующим содержимым:
- imgfile="/mydisks/test1-flat.vmdk" — путь до файла с образом раздела
- d_label="MYDISK" — метка раздела, где лежит файл с образом раздела test1-flat.vmdk
Загружаемся с этой флешки, нажимаем F6 и попадаем в меню, где выбираем пункт "boot linux from vmdk part". Радуемся запущенному Linux.
Можно вернуться в свою рабочую OS, запустить VirtualBox и загрузить Linux из виртуального диска.
Таким вот, незамысловатым, способом можно иметь возможность сидя в Windows запускать Linux в VirtualBox, настраивать его… А потом запускать на реальном железе.
Стоит иметь ввиду, что если обновления затрагивают grub, то они не корректно будут завершены в системе, запущенной на реальном железе, ибо нет раздела с загрузчиком. Однако это не мешает нормальной работе. А такие обновления можно и через VirtualBox применять.
Можно ли смонтировать образ диска VirtualBox (.vdi), чтобы содержимое можно было просматривать в Nautilus и т. Д .?
У меня есть Windows 2000 .vdi, которая не загружается («недоступное загрузочное устройство»). ") после обновления с VirtualBox 2.x до 3.1.6. Я считаю, что данные дисковода IDE изменились, и все, что мне нужно сделать, - это получить доступ к образу внутреннего диска и отредактировать Windows boot.ini , чтобы указать новое местоположение.
Можно преобразовать в стандартный образ и затем смонтировать его.
Нужно ЗНАЮТЬ тип файловой системы, ext3 в данном случае. После монтирования, зайдите и отредактируйте его с помощью выбранного вами редактора. Не путайте файлы внутри места /mnt с работающим хостом, иначе будет плохо.
Чтобы проверить подробности о вашем VDI файле, запустите: VBoxManage showhdinfo ubuntu.vdi .
Похоже, vdfuse - это инструмент, который вы ищете. Он находится в репозиториях Ubuntu. Если вы хотите скомпилировать себя (исходный код 2010 г.), вы можете сделать это тоже .
Однако для большинства из нас это сводится к простому:
Кажется, теперь он также поддерживает динамический vdi.
А чтобы смонтировать файл .vdi в каталоге / mnt , используйте команду:
Весь диск будет смонтирован с разделами Partition1 , Формат имени раздела 2 . Затем эти файлы можно монтировать в цикле. Например,
Установите диск как вторичный мастер для другой виртуальной ОС, затем загрузитесь в эту (виртуальную) ОС, и вы сможете смонтировать его.
Шаг 1: Предположим, что у вас уже установлена виртуальная ОС (скажем, Ubuntu 16.04) в Virtual box, добавим новое хранилище из настроек этой виртуальной ОС. Шаг 2: Просмотрите файл Vdi, к которому хотите получить доступ, и выберите его.
Шаг 3: Войдите в виртуальную ОС.
Шаг 4: Виртуальный диск, вероятно, будет доступен внутри ОС. Если нет, выполните шаг 5
Шаг 5: Внутри виртуальной ОС используйте Gparted и проверьте диски. и убедитесь, что диск имеет тип, доступный для виртуальной ОС. Если это не так, возможно, вам придется отредактировать диск, но тогда вы потеряете существующее содержимое.
Используйте qemu-nbd , процесс объясняется на serverfault и в этом блог .
По сути, вам придется установить qemu , если необходимо:
Затем вам нужно будет загрузить модуль сетевого блочного устройства :
Прикрепите образ .vdi к одному из только что созданных nbd:
Теперь вы получите блочное устройство / dev / nbd0 вместе с несколькими узлами устройства раздела / dev / nbd0p *.
Добавляем новый диск к виртуальной машине vmware. ОС - ubuntu server.
Первым делом выключаем виртуалку и добавляем в vCenter новый диск:
В нашем случае у виртуалки был системный диск размером 16 GB, добавляем новый 50 GB.
При добавлении диска можно не только выбрать размер диска, но и тип "Disk Provisioning". Не буду подробно описывать их особенности, расскажу вкратце. Есть три варианта:
- Thick provision lazy zeroed - толстый ленивый (по умолчанию). При создании занимает выделенный объём, но нулями не заполняет сразу, а по мере записи. Быстро создаёт большие винты, но потом тратит ресурсы на заполнение блоков нулями. При долгой работе в итоге превращается в жадный.
- Thick provision eager zeroed - толстый жадный. При создании заполняет выделенный объём нулями. Долго создаёт большие винты, зато потом летает.
- Thin provision - тонкий. Быстро создаётся, не занимает места на диске. По мере наполнения - отжирает винт пока не заполнит весь выделенный для него объём. На это тратятся некоторые ресурсы. Опасен тем, что в один прекрасный момент места может не хватить, тогда с фризом нужно будет бороться танцами и бубном.
Винт создали, включаем машину и дальше работаем в консоли.
Посмотрим состояние партиций на диске:
Видим новый винт /dev/sdb. Строке 53.7 Гб не верим, потому как это округление от байтов. Если перевести 53687091200 байт в гигабайты, то получим ровно 50. Занимаемся разметкой жесткого диска:
Вводим "m" для справки:
Создаём новый раздел "n":
Создаём основной раздел "p" или просто жмём enter:
Выбираем номер раздела "1" или просто жмём enter:
Оставляем первый сектор по умолчанию, enter:
Оставляем последний сектор по умолчанию, enter:
Выведем таблицу разделов:
Видим, что появился новый раздел /dev/sdb1. Делаем запись таблицы разделов на диск "w":
Посмотрим состояние партиций на диске:
Теперь нужно создать файловую систему. Форматируем новый диск с помощью команды mkfs.ext4:
В данном случае параметр "-m 0" отвечает за процент резервных блоков. Дефолтные 5% меня не устраивают, супер-юзер обойдётся, винты дорогие, экономим место.
-m reserved-blocks-percentage
Specify the percentage of the filesystem blocks reserved for the super-user. This avoids fragmentation, and allows root-owned daemons, such as syslogd(8), to continue to function correctly after non-privileged processes are prevented from writing to the filesystem. The default percentage is 5%.
Получаем идентификатор раздела:
Полученный UUID понадобится для монтирования диска в папку. Здесь же можно посмотреть тип файловой системы. Создаём папку, в которую будем монтировать диск, в моём случае "opt":
Далее редактируем файл "/etc/fstab", дописываем строку:
Где UUID нами получен ранее. Монтируем:
Видим, что диск /dev/sdb1 смонтирован в opt. Теперь при загрузке он будет монтироваться автоматически.
Установленного в системе жесткого диска может быть недостаточно и иногда встает вопрос о добавлении дополнительного носителя. Рассмотрим как смонтировать диск на Virtual Private Server (VPS), Virtual Dedicated Server (VDS) и Standalone Server.
Подготовка.
Перед началом работы следует убедиться существует ли диск в системе. Иногда наличие устройства в BIOS может быть недостаточным. Доступные накопители проверяем командой:
В нашем случае в системе присутствуют 2 диска - sda и sdb, оба по 10 Гб, первый диск системный. Работать будем со вторым диском (sda).
Важно помнить, что Linux системы можно повредить неверно указав диск, например системный. Следует тщательно проверять и перепроверять выбор носителя. На помощь приходит тот факт, что новый диск (из коробки) не имеет файловой системы и разделов.
Разметка диска.
Для разметки диска запустить утилиту fdisk с указанием пути до диска:
При нажатии “m” и подтверждением ввода клавишей Enter, программа предоставит страницу доступных команд:
Так как мы будем создавать простой раздел (не загрузочный), будем использовать все дисковое пространство, нажимаем клавишу “n” и Enter.
Система спросит о типе раздела - выбираем p (primary) - первичный.
Номер раздела - 1
На вопрос о первом и последнем секторе отвечаем нажатием клавиши Enter.
Важно! Если вы желаете создать несколько логических дисков, то в ответе на последний сектор следует указать размер в кило-, мега-, гига-, тера-, петабайтах. Соответственно, если раздел нужен размером в 2 гигабайт, то указываем 2G.
Сохраняем изменения нажатием “w” и подтверждаем выбор с помощью клавиши Ввод.
Форматирование диска.
После выполнения операции описанной выше, в системе будет создано устройство /dev/sdb1 - по своей сути это и есть раздел на диске. Теперь форматируем.
Современный Linux предлагает на выбор несколько вариантов файловых систем. Создание файловой системы происходит выполнением команды mkfs с указанием ключей, либо выполнением одной из программ:
Читайте также: