Продолжаем неделю «обожания 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/releases7z 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 быть виден и монтироваться, если не виден, то удалить весь раздел и создать заново.
C помощью 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-terminalsudo 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 по этой статье не загрузился.
Комментарии (9)
DoMoVoY
05.07.2023 19:13+2Не хватает нормальной разметки в статье. Хотя бы моношрифт для команд и вывода или как блок кода. Нагляднее на ключевых этапах скриншоты, чтобы свериться верно ли идет процесс. А попрошайничество лайков в конце выглядит не прилично. Ну и скриншоты с описанием для хабра будет лучше, чем видео.
temnikov_vasiliy Автор
05.07.2023 19:13-3я не писатель, а тоже читатель, как и все. я старался, как мог, но тутошний редактор это ужас-ужасный...
VictorFilimonov
05.07.2023 19:13+1Ну... То, что выполняется в коммандной строке, можно выделить как код...
Выглядеть будет так:
Пример какого-то кода
Выделяете текст, кликаете на значок, похожий на "<>"
Выглядеть будет лучше.
Ещё, можно воспользоваться хайдами для больших кусков текста, но не совсем обязательных. Обозначается звёздочкой (*)
Выглядит так
Какой-то спрятанный текст, возможно,
Многострочные Куски Кода
И заголовки сделать чутка больше (не выделяя текст, тыкаете на кнопку "H", и в появившемся поле пишете название части статьи (например, "Шаг 1")
А вообще, лучше прочесть эту статью, первый пункт. Там как раз куча рекомендаций по оформлению.
NutsUnderline
05.07.2023 19:13+2Оно конечно почему бы и нет, но как бы можно просто выделить отдельный раздел, а то и целый диск...
Demiourgos
05.07.2023 19:13Это конечно мило, но после появления Вентоя на сцене я решил, шта ну его нафиг, лучше валяющийся без дела старый ССД с полки возьму и на него поставлю.
anzay911
У Microsoft есть статья по добавлению VHD с Windows в bcdboot. Если кому-то не хочется GRUB.
https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/boot-to-vhd--native-boot--add-a-virtual-hard-disk-to-the-boot-menu?view=windows-11
DikSoft
Если не изменяет память, загрузка в VHDX работала только для Exterprise редакций Windows. Может сейчас и сняли ограничение, в описании процесса настройки его уже нет
temnikov_vasiliy Автор
в win10 загрузка из bcd другой винды из vhdx-файла работает с любыми редакциями.
temnikov_vasiliy Автор
там не про то.. виндовый загрузчик может загрузить другую винду, из vhdx-файла. поэтому grub'ов не избежать..