Установка 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-файле на С:\. Вы можете загрузить любой из них, как хотите. Если он вам больше не нужен, просто удалите его как обычный файл.


Качаем нашу самую русиянскую AstraLinux https://download.astralinux.ru/astra/stable/2.12_x86-64/iso/alce-2.12.46.6-17.04.2023_15.09.iso

качаем буржуйский VirtualBox https://download.virtualbox.org/virtualbox/7.0.8/VirtualBox-7.0.8-156879-Win.exe

Ставим 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), то создаём раздел)
Записать изменения на диск - ДА

ядро 5.15-generic

Системные часы установлены на местное время !!ОБЯЗАТЕЛЬНО!! иначе будет разница в 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

кладём файл vdiskchain и ipxe.krn вместе с файлом astra.vhd.vtoy
https://github.com/ventoy/vdiskchain/releases/download/v1.3/vdiskchain-1.3.tar.gz

загрузку 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

кладем файл vdiskchain вместе с файлом astra.vhd.vtoy
https://github.com/ventoy/vdiskchain/releases/download/v1.3/vdiskchain-1.3.tar.gz

в grub2-efi или в другом загрузчике добавить новый пункт меню

menuentry 'Astra' {
	search --no-floppy --file /astra.vhd.vtoy --set root
	chainloader /vdiskchain vdisk=/astra.vhd.vtoy
}

другие примеры:

==== 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 быть виден и монтироваться, если не виден, то удалить весь раздел и создать заново
с помощью blkid узнать UUID нового раздела и изменить его в /etc/fstab

mkfs.vfat /dev/sda1

#sed "/boot/efi/d" /etc/fstab > /etc/fstab2
#blkid /dev/sda1 | cut -f2 -d' ' >> /etc/fstab2

#blkid /dev/sda1 | awk '{print $2," /boot/efi vfat utf8 0 0"}' >> /etc/fstab
#blkid /dev/sda1 | awk '{print $3," /boot/efi vfat utf8 0 0"}' >> /etc/fstab

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


Чтобы работал Bluetooth
apt install blueman fly-admin-bluetooth

Задать пустой пароль пользователя или короче 8 символов
sudo usermod -p '' user

Установить драйвер для 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

mcedit ./rtl8188fu/Makefile

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

==============================

Netgear rtl8812au

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

==============================

Если будет много лайков, добавлю видео с полным процессом установки ...

(а то только минусовать можете за просто так..)

На хабре есть подобная статья https://habr.com/ru/companies/domclick/articles/547150/ но у меня linux по этой статье не загрузился.

Источник: https://habr.com/ru/articles/746150/


Интересные статьи

Интересные статьи

Постепенно эволюционируя, каждая организация переходит от ручного grep логов к более современным инструментам для сбора, анализа логов. Если вы работаете с kubernetes, гд...
На случай, когда получаешь что-то давно обещанное и/или ожидаемое, есть поговорка «И полгода не прошло». В случае с OpenZFS 2.0 все чуть дольше: этот релиз мы ждали не полгода, а полтор...
От переводчика: предлагаю вашему вниманию перевод очень старой статьи, опубликованной 15 января 1983 года. Несмотря на столь внушительный возраст, статья показалась мне интересной, и возможно, чт...
LXD — это системный менеджер контейнеров следующего поколения, так гласит источник. Он предлагает пользовательский интерфейс, похожий на виртуальные машины, но использующий вместо этого контейн...
Недавно я столкнулся с многоминутными задержками на моей рабочей станции. После расследования выяснилось, что причина проблемы заключалась в блокировке, которая могла длиться по пять минут, во ...