Кратко:
Повторив построчно команды из этой публикации, вы с очень высокой степенью гарантии сможете установить нужный вам дистрибутив ОС у облачного провайдера, даже если в списке шаблонов виртуального сервера он отсутствует.
Это может потребоваться как из соображений экономии, например если вы фанат windows и у вас есть ключи, так и из соображений совместимости, когда вы готовите рабочие места на отечественных линуксах всем пользователям, или просто в познавательных целях.
Те, кто больше любит видео, могут и сейчас посмотреть его вместо чтения статьи, желательно и то, и другое.
Первый подготовительный шаг:
После выбора хостинга это подготовка установочных образов iso.
В случае linux их надо просто скачать с сайта производителя.
В случае windows надо интегрировать драйвера virtio в дистрибутив при помощи ntlite
Образ с драйверами можно загрузить с github.com/virtio-win
Инструкция на сайте программы.
Второй подготовительный шаг:
Нужно подготовить пункты меню grub2 для запуска установки из образа iso.
В случае linux grub2 это умеет, для windows нужно будет сначала развернуть установочный iso, а затем
из grub2 передать управление загрузчику.
Сделать это можно простым поиском по интернет, предпочтительный способ ограничив его сайтом производителя ОС.
Отличный сайт агрегатор LinuxBabe
Но есть лайфхак, скачать LinuxLive USB Creator и подсмотреть, как они создают пункты меню.
Установка:
Создаем у облачного провайдера сервер нужной конфигурации, при этом шаблон можно выбрать любой знакомый вам, я взял ubuntu.
Стартуем сервер, проверяем возможность подключения, выключаем (пусть обижаются тру линуксовые админы, но я еще доустановил Midnight Commander).
Добавляем диск для размещения дистрибутива, который мы получили на шаге 1.
Размечаем его по инструкции например из базы знаний и монтируем
fdisk -l
fdisk /dev/vdb
mkfs.ext4 /dev/vdb1
mkdir /mnt/vdb1
mount /dev/vdb1 /mnt/vdb1
После этого в случае установки linux просто копируем образ iso на новый диск,
в случае windows образ надо будет развернуть, поэтому iso копируем на основной диск
Пока дистрибутив копируется, занимаемся файлом конфигурации grub2.
Для ubuntu он будет /boot/grub/grub.cfg и его копия в подкаталоге efi/ubuntu в моем случае
Создаем копию файла на всякий случай и удаляем из него все, оставив тоже на всякий случай один пункт меню для загрузки старой системы.
Добавляем свой пункт меню загрузки.
Если в этом пункте мы опираемся на guid раздела, а не на его номер, что в общем случае предпочтительно,
insmod search_fs_uuid
search --no-floppy --fs-uuid --set=root a112f578
вместо простого
set root=(hd1,msdos1)
то сначала узнаем его
lsblk -o +uuid,name
Перезагружаемся, если за это время дистрибутив скопировался.
После перезагрузки переходим в веб-консоль сервера и видим созданное ранее меню grub2.
Выбираем пункт установки и если все ранее было сделано правильно, то попадаем в штатную установку требуемой ОС.
Если что-то пошло не так, то всегда можно вернуться к старой системе или здесь же из меню grub2 поправить, например, номера дисков.
В случая windows подключенный новый диск надо отформатировать в формате ntfs, да и раздел желательно создавать как DOS
делаем
apt install ntfs-3g -y
fdisk /dev/vdb
reboot now - на всякий случай
mkfs.ntfs -f /dev/vdb1
mkdir /mnt/iso
mount -o loop '/mnt/Windows 10 virtio.iso' /mnt/iso
и копируем файлы из образа iso на новый диск
После этого по той же схеме, перезагрузившись, попадаем в меню grub2
и запускаем установщик ОС
После установки подключенный диск удаляем в меню конфигурации сервера и остаемся в рамках выбранной конфигурации и тарифа.
Полный листинг меню grub2
menuentry "Kylin" {
set isofile="/ubuntukylin-22.04.3-desktop-amd64.iso"
loopback loop (hd1,1)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd
}
menuentry "Astra linux common edition 1" {
insmod ext2
isofile="/orel-current.iso"
insmod search_fs_uuid
search --no-floppy --fs-uuid --set=root a112f578-08ae-41f7-83f1-9dcdaed20551
loopback loop "${isofile}"
linux (loop)/hd-media/vmlinuz modprobe.blacklist=evbug
initrd (loop)/hd-media/initrd.gz
}
menuentry "Astra linux common edition 2" {
insmod ext2
set gfxpayload=keep
isofile="/orel-current.iso"
loopback loop (hd1,1)"${isofile}"
linux (loop)/hd-media/vmlinuz modprobe.blacklist=evbug
initrd (loop)/hd-media/initrd.gz
}
menuentry "Windows-10 1" {
set root=(hd1,msdos1)
insmod part_gpt
insmod ntfs
insmod chain
chainloader /efi/boot/bootx64.efi
}
menuentry "Windows-10 2" {
insmod search_fs_uuid
search --no-floppy --fs-uuid --set=root a112f578
insmod part_gpt
insmod ntfs
insmod chain
chainloader /efi/boot/bootx64.efi
}
menuentry 'Ubuntu, with Linux 5.15.0-97-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-97-generic-recovery-3548754c-f53a-426f-9383-65099b20302b' {
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
search --no-floppy --fs-uuid --set=root a241d0db-9495-4a54-a7e3-a98d32d8c7cb
echo 'Loading Linux 5.15.0-97-generic ...'
linux /vmlinuz-5.15.0-97-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro single nomodeset dis_ucode_ldr
echo 'Loading initial ramdisk ...'
initrd /initrd.img-5.15.0-97-generic
}
Благодарю компанию ©Serverspace за предоставленное оборудование и надеюсь на их поддержку при записи следующих публикаций.
В них мы дойдем до вкусного - работы РЕД ОС в домене windows с авторизацией ОС в клиентах 1С и далее архивирования.
Статья продолжает серию публикаций:
- Бесплатный вебинар "В облаке, как дома: Как настроить рабочее место пользователя 1С на базе РЕД ОС"
- В облаке, как дома: Устраиваемся поудобнее. Рабочее место пользователя 1С на базе РЕД ОС (HTTPS и архивирование)
- Три пингвина под окном... Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux
- Установка 1С:Сервера взаимодействия. Заметки на полях