Установка Astra Linux (или любой другой Linux) в vhd файл на компьютер с установленной windows + установка usb wi-fi
Продолжаем неделю «обожания linux на хабре», но не в стиле «линукс — это свободка, линукс — перспективно» https://habr.com/ru/companies/gnivc/articles/746104/ https://habr.com/ru/articles/746064/ , а берем в руки клаву‑мышь, и начинаем ставить этот Ваш линукс на свой комп с любименькой виндой.
1. Linux работает на физической машине, а не на виртуальной машине, поэтому потерь в эффективности нет.
2. Один файл vhd/vdi можно загрузить как в режиме Legacy BIOS, так и в режиме UEFI.
3. Linux не нужен ни диск, ни раздел, только файл. Например, Windows является вашей основной ОС, и вы помещаете несколько файлов Ubuntu/Debian/Arch. каждый в своём VHD‑файле на С:\. Вы можете загрузить любой из них, как хотите. Если он вам больше не нужен, просто удалите его как обычный файл.
Ставим VirtualBox, создаём машину, Переходим в Экспертный режим.
Имя — любое
Образ ISO — подключаем alce-2.12.46.6-17.04.2023_15.09.iso
Тип Linux
Версия — не важно
Оборудование >
Указываем выделение памяти >=2Гб (не 1Гб, иначе будет ошибка Initramfs Unpacking Failed)
Процессоры — укажите больше чем 1
Включаем галку «Включить EFI (Только специальные ОС)» !!ОБЯЗАТЕЛЬНО!!
(можно ставить и без галки, разница в том, что с галкой диск будет размечен как GPT, без Галки как MBR и без галки при загрузке в EFI надо будет лишний раз нажимать ENTER (vdiskchain будет писать, что образ только для Legacy)).
Жесткий диск >
Тип VHD (можно VDI разницы нет)
Ставим галочку «Выделить место в полном размере» !!ОБЯЗАТЕЛЬНО!!
Создаем C:\Astra.vhd файл >=10Гб (стандартная установка astra занимает 7,4Гб)
Лучше в корне диска, но не обязательно
Начинаем установку в VirtualBox
Разметка дисков — вручную
Выбираем SCSI1 sda
Создать новую пустую таблицу разделов — ДА
Если не хотите заморачиваться, то выбирайте авторазметку
Или как настоящий линуксоид делаем всё по‑своему:
Выбираем Свободное место
Выбираем Создать новый раздел
Размер 10MB
Первичный
Конец
Использовать как: FAT16 (если хотите FAT32 то размер диска должен быть >=100MB, но у меня на реальной машине с FAT32 почему то не загружался, только с FAT16)
Точка монтирования: ввести вручную /boot/efi
Настройка раздела закончена.
Выбираем Свободное место
Выбираем Создать новый раздел
Размер ENTER (максимальный)
Первичный
Параметры монтирования — можно добавить — discard, noatime, nodirtime
Зарезервированные блоки — 0%
Настройка раздела закончена
Закончить разметку и записать изменения на диск.
Не найдено разделов EFI — НЕТ
Не указали раздел для подкачки — НЕТ (если памяти на реальной машине мало (<=2Gb), то создаём раздел)
Записать изменения на диск — ДА
Системные часы установлены на местное время !!ОБЯЗАТЕЛЬНО!! иначе будет разница в 3 часа между linux и windows.
Включить автологин в систему (если надо, в панели управления можно выключить)
Загрузчик GRUB — ДА !!ОБЯЗАТЕЛЬНО!!
Выбираем /dev/sda
Итак, вы установили astra на GPT с EFI-загрузчиком.
Теперь добавляем MBR-загрузчик, если не нужна загрузка из Legacy то можете пропустить.
Загружаем виртуальную машину, запускаем fly-terminal.
sudo su
apt update
apt install grub-pc-bin
Итак мы добавили MBR-загрузчик.
Теперь патчим astra для загрузки на реальной машине запускаем терминал:
wget https://github.com/ventoy/vtoyboot/releases/download/v1.0.29/vtoyboot-1.0.29.iso
или смотрим версию новее https://github.com/ventoy/vtoyboot/releases
7z x vtoyboot-1.0.29.iso
tar -xvf vtoyboot-1.0.29.tar.gz
cd vtoyboot-1.0.29
sudo sh vtoyboot.sh
Выключаем виртуальную машину и проверяем загрузку в обоих режимах MBR и EFI
со включённой и выключенной галкой «Включить EFI (Только специальные ОС)» (Настройки->Система).
Теперь подготавливаем образ к загрузке на реальном железе.
К файлу vhd добавляем окончание .vtoy получится astra.vhd.vtoy !!ОБЯЗАТЕЛЬНО!!
Самый простой способ загрузить astra.vhd.vtoy — это установить https://www.ventoy.net/ на флешку и из неё запустить astra.vhd.vtoy.
Но можно загрузить astra.vhd.vtoy из виндового загрузчика, через Grub4dos, но только режиме загрузки Legacy.
Для загрузки через Legacy:
Качаем Grub4Dos http://dl.grub4dos.chenall.net/grub4dos-0.4.6a-2023-06-10.7z
Именно grub4dos-0.4.6a-2023-06-10.7z следующие версии выдают ошибку c000007b при загрузке из виндового загрузчика.
В корне диска С кладем файл grldr
В корне диска С кладем файл menu.lst и добавляем:
title Astra.vhd.vtoy kernel (hd0,1)/ipxe.krn vdisk=/Astra.vhd.vtoy initrd (hd0,1)/vdiskchain
kernel (hd0,msdos1)/ipxe.krn vdisk=/Astra.vhd.vtoy initrd (hd0,msdos1)/vdiskchain
(hd0,msdos1) диск и раздел где лежит astra.vhd.vtoy
Загрузку Grub4Dos прописываем в виндовый загрузчик.
В BootIce открыть bcd файл и добавить RealMode Grub/Linux
Указать раздел где находится grldr
Изменить \grldr.mbr на \grldr
Перезагружаемся — выбираем из меню запись с grub
Или в BootIce загрузку Grub4Dos прописать на сам раздел диска.
Выбираем диск — управление MBR — GRUB — Инсталляция — 0.4.6a — Сохранить на диск
перезагружаемся — F8/F11 и выбираем диск, на который установили grub.
Для загрузки через UEFI нужно установить другой загрузчик (grub4dos-for_UEFI, rEFInd, grub2-efi), но лучше использовать загрузчики SilentSuperBoot (Super-UEFIinSecureBoot-Disk_minimal_v3.zip) или Ventoy, там есть MokManager и поддержка SecureBoot.
В grub2-efi или в другом загрузчике добавить новый пункт меню:
==== 2.1 i386-pc ====
grub4dos:
kernel /ipxe.krn vdisk=/MyVdiskDir/Astra.vhd.vtoy
initrd /vdiskchain
GRUB2:
linux16 (hd0,1)/ipxe.krn vdisk=/MyVdiskDir/Astra.vhd.vtoy
initrd16 (hd0,1)/vdiskchain
==== 2.2 x86-64-efi ====
grub2:
chainloader (hd1,1)/test123/vdiskchain vdisk=/MyVdiskDir/Astra.vhd.vtoy
rEFInd:
loader /vdiskchain vdisk=/MyVdiskDir/Astra.vhd.vtoy
Systemd-boot:
efi /vdiskchain vdisk=/MyVdiskDir/Astra.vhd.vtoy
Если не запускается на реальном железе в EFI то загрузить в другой linux например в xubuntu. Там должен раздел FAT быть виден и монтироваться, если не виден, то удалить весь раздел и создать заново.
C помощью blkid узнать UUID нового раздела и изменить его в /etc/fstab
#sed «/boot/efi/d» /etc/fstab > /etc/fstab2
#blkid /dev/sda1 | cut -f2 -d’ ‘ >> /etc/fstab2
UUID=1234-1234 /boot/efi vfat utf8 0 0
Если не запускается на реальном железе в Lefacy
Если пишет «Waiting for vtoy device. «, то надо дефрагментировать файл образа Astra.vhd.vtoy.
Скачайте Defraggler https://www.softportal.com/get-8257-defraggler.html
Можно не устанавливать программу, а открыть dfsetup222.exe как архив (7z или через TotalCommander с помощью Ctrl+PageDown)
Там есть утилита для дефрагментации отдельных файлов.
Скопировать df.exe из архива в c:
В коммандной строке запустить
c:\df.exe c:/Astra.vhd.vtoy
Второй вариант установки без галки «Включить EFI (Только специальные ОС)». Разница лишь, в том, что при загрузке на реальной машине, надо будет лишний раз нажимать ENTER (vdiskchain будет писать, что образ только для Legacy).
Устанавливаем также, но теперь добавляем EFI-загрузчик на раздел FAT.
Если не нужна загрузка из UEFI то можете пропустить.
Загружаем виртуальную машину, запускаем fly-terminal
sudo su
apt update
apt install grub-efi-amd64-bin
mkdir -p /boot/efi/efi/boot
cp /usr/lib/grub/x86_64-efi/monolithic/grubx64.efi /boot/efi/efi/boot/bootx64.efi
cp /boot/grub/grub.cfg /boot/efi/efi/boot/
Итак мы добавили EFI-загрузчик на раздел FAT.
apt install blueman fly-admin-bluetooth
Задать пустой пароль пользователя или короче 8 символов:
Установить драйвер для Nvidia:
apt install nvidia-driver-510
или sudo sh astra-nvidia если карта старее nvida rtx.
apt install wine-staging winetricks
Подключаем разные USB WI-FI.
Tp-link 150m
0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
Удивительно, но подключается и работает.
Китайская 802.11n с красным ободком
0bda:f179 Realtek USB Wireless Adapter Drivers [rtl8188fu]
sudo apt update && sudo apt-get install build-essential git dkms linux-headers-$(uname -r)
git clone https://github.com/kelebek333/rtl8188fu
CONFIG_POWER_SAVING = n CONFIG_WIFI_MONITOR = y
sudo dkms add ./rtl8188fu
sudo dkms build rtl8188fu/1.0
sudo dkms install rtl8188fu/1.0
sudo cp ./rtl8188fu/firmware/rtl8188fufw.bin /lib/firmware/rtlwifi/
sudo modprobe rtl8188fu
Ourlink 300m
0bda:818b Realtek Semiconductor Corp. RTL8192EU 802.11b/g/n WLAN Adapter
RTL8192EU rev B (SMIC) 2T2R, TX queues 3, WiFi=1, BT=0, GPS=0, HI PA=0
Видит сети, но не подключается.
sudo apt update && sudo apt-get install linux-headers-$(uname -r) build-essential dkms git
git clone https://github.com/clnhub/rtl8192eu-linux.git
cd rtl8192eu-linux
sudo rmmod rtl8xxxu
echo «blacklist rtl8xxxu» >> ./blacklist-rtl8xxxu.conf
sudo mv ./blacklist-rtl8xxxu.conf /etc/modprobe.d/
sudo dkms add .
sudo dkms install rtl8192eu/1.0
sudo modprobe 8192eu
Comfast 600Mb
0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
https://4te.me/post/realtek-8821-linux-driver/
Linux Driver for USB WiFi Adapters that are based on the RTL8811CU, RTL8821CU, RTL8821CUH and RTL8731AU Chipsets
sudo apt update && sudo apt install build-essential git dkms bc iw rfkill
git clone https://github.com/morrownr/8821cu-20210916.git
cd 8821cu-20210916
sudo sh install-driver.sh
sudo apt update && sudo apt install build-essential git dkms bc iw rfkill
git clone https://github.com/gnab/rtl8812au.git
sudo cp -r rtl8812au /usr/src/rtl8812au-4.2.2
sudo apt install dkms
sudo dkms add -m rtl8812au -v 4.2.2
sudo dkms build -m rtl8812au -v 4.2.2
sudo dkms install -m rtl8812au -v 4.2.2
sudo modprobe rtl8812au
0b05:17eb Asus USB-AC55 Wireless-AC1300
This driver supports Ralink / Mediatek mt766u, mt7632u and mt7612u chipsets.
the driver supports several USB dongles such as Netgear-A6210, ASUS USB-AC55, ASUS USB-N53 and EDUP EP-AC1601
sudo apt-get install git build-essential linux-headers-$(uname -r)
git clone https://github.com/jurobystricky/Netgear-A6210.git
cd Netgear-A6210
make
sudo make install
Если будет много лайков, добавлю видео с полным процессом установки.
(а то только минусовать можете за просто так..)