Dual boot with Windows (Русский)
Эта статья описывает способы установки и особенности совместного использования Arch Linux и Windows на одном компьютере.
Contents
Важная информация
Особенности загрузки Windows на системах с UEFI и BIOS
В зависимости от версии используемой операционной системы Windows на режим загрузки и разбивку дисков на разделы налагаются определённые ограничения:
- Windows XP (x86 и x86_64 (также называемая x64) — RTM и все сервис-паки) не поддерживает загрузку в UEFI-режиме ни с MBR, ни с GPT. Кроме того, не поддерживается загрузка в режиме BIOS с диска GPT. Единственный поддерживаемый режим — BIOS с диска MBR.
- Windows Vista и 7 (x86 — RTM и все сервис-паки) поддерживают загрузку только в режиме BIOS и только с дисков MBR.
- Windows Vista RTM x86_64 (только RTM, без сервис-паков) поддерживает загрузку в режиме BIOS только с дисков MBR.
- Windows Vista (SP1 и старше, кроме RTM), а также Windows 7x86_64 поддерживают загрузку в режиме UEFI x86_64 только с дисков GPT, или в режиме BIOS только с дисков MBR. Режимы UEFI IA32 + GPT/MBR, UEFI x86_64 + MBR, BIOS + GPT не поддерживаются.
- Windows 8/8.1 x86 поддерживают загрузку в режиме UEFI IA32 только с дисков GPT, либо в режиме BIOS только с дисков MBR. С (U)EFI IA32 поставляется незначительное количество систем, например, старые Mac с процессорами Intel (модели, выпущенные ранее 2010 года), и планшеты с Windows 8/8.1 на процессорах Intel Atom (архитектура Clover Trail и Bay Trail, загружаются только в режиме UEFI IA32 и только с дисков GPT).
- Windows 8/8.1x86_64 поддерживает загрузку в режиме UEFI x86_64 только с дисков, использующих GPT, или в режиме BIOS с дисков MBR. Поддержка режима UEFI IA32, загрузки в режиме UEFI x86_64 с диска MBR, а также загрузки в режиме BIOS с диска GPT отсутствует.
В случае, если на компьютер была предустановлена Windows:
- Все компьютеры с предустановленной Windows XP, Vista или 7 (32 бит), независимо от версии сервис-пака, архитектуры (кроме Windows 7), редакции (SKU) и поддержки UEFI оборудованием, по умоланию загружаются в режиме BIOS-MBR.
- Большинство компьютеров с предустановленной 64-битной Windows 7, независимо от версии сервис-пака и редакции, по умолчанию загружаются в режиме BIOS-MBR. Некоторое количество, как правило, наиболее современных компьютеров, загружаются в режиме UEFI-GPT.
- Все компьютеры с предустановленной Windows 8/8.1 загружаются в режиме UEFI-GPT. Разрядность UEFI соответствует разрядности операционной системы, т. е. 64-битная Windows 8/8.1 загружается 64-битным UEFI, а 32-битная Windows — 32-битным UEFI в режиме IA32.
Чтобы проверить, в каком режиме была загружена система, воспользуйтесь следующей инструкцией:
- Загрузите Windows;
- Нажмите комбинацию клавиш Win+R, чтобы открыть диалог запуска программы;
- В появившемся окне введите «msinfo32» и нажмите Enter;
- В левой части окна System Information нажмите System Summary и обратите внимание на поле BIOS mode в правой части окна;
- Если значение этого поля равно UEFI, система была загружена в режиме UEFI-GPT. Если значение поля равно Legacy, система загружена в режиме BIOS-MBR.
Как правило, тип используемой таблицы разделов зависит от того, в каком режиме загружается Windows. Например, если её загрузка происходит в режиме UEFI, то она может быть установлена только на диск с GPT. Если Windows загружается в режиме BIOS, её можно установить только на диск с MBR (также называемой «таблицей разделов в стиле msdos«). Это ограничение — особенность работы установщика Windows, и на данный момент (декабрь 2014 года) не существует официально поддерживаемого Microsoft способа обойти его. Таким образом, в зависимости от способа загрузки для системного диска Windows поддерживает только либо MBR, либо GPT.
Ядро Linux не имеет таких ограничений, тем не менее, возможность загрузки с того или иного раздела зависит также от используемого загрузчика и параметров его конфигурации. Если вы планируете устанавливать и загружать Arch Linux и Windows с одного диска, необходимо учесть ограничения, налагаемые Windows, поскольку от способа загрузки и типа используемой таблицы разделов зависит процедура установки и настройки загрузчика. Для получения дополнительной информации пройдите по ссылке https://support.microsoft.com/kb/2581408
Установка на планшеты с процессорами Intel Atom
Планшеты с процессором Intel Atom (архитектура Clover Trail и Bay Trail) имеют поддержку только режима IA32 UEFI, поддержка Legacy BIOS (CSM) в них отсутствует (в отличие от большей части систем с UEFI x86_64). Это связано с тем, что производители аппаратного обеспечения для планшетов следуют рекомендациям Microsoft для оптимизации их работы в режиме Connected Standby, появившемся в Windows 8. Из-за отсутствия поддержки режима Legacy BIOS и отсутствия 32-битного UEFI-загрузчика в официальном установочном образе Arch Linux, этот образ нельзя использовать для установки Arch Linux на вышеупомянутые планшеты.
Поддержка режимов UEFI и BIOS загрузчиками
Большинство загрузчиков Linux, установленные для одного типа , не могут передавать управление загрузчикам других типов. Например, если Arch Linux установлен на первый диск в режиме UEFI-GPT или UEFI-MBR, и на втором диске имеется Windows, установленная в режиме BIOS-MBR, загрузчик Arch не сможет передать управление загрузчику Windows. Аналогично, если Arch установлен в режиме BIOS-MBR или BIOS-GPT на первый диск, и Windows установлена в режиме UEFI-GPT на второй, загрузчик Arch не сможет передать управление загрузчику Windows.
У этого правила есть два исключения: 1) Grub (2) на компьютерах Apple Mac, установленный в режиме EFI, может передавать управление BIOS-загрузчику другой операционной системы с помощью команды appleloader. 2) rEFInd, который поддерживает передачу управления BIOS-загрузчикам на системах с UEFI, но, как утверждает его автор, этот метод не всегда работает на системах, отличных от Apple Mac.
Тем не менее, если Arch установлен в режиме BIOS-GPT на один диск, а Windows установлена в режиме BIOS-MBR на другой диск, то BIOS-загрузчик Arch Linux может загружать Windows со второго диска, если поддержка такого функционала присутствует в используемом вами загрузчике.
UEFI Secure Boot
Все компьютеры с предустановленной Windows 8/8.1 по умолчанию загружаются в режиме UEFI-GPT с включённой технологией UEFI Secure Boot (которая может отключаться по желанию пользователя) и выключенным Legacy BIOS Support (CSM) (который при необходимости можно включить, если он поддерживается вашим UEFI). Это — следствие выполнения требований Microsoft к аппаратному обеспечению для систем, поставляемых с предустановленной Windows.
Установочный образ Arch Linux поддерживает Secure Boot, однако, если он включен, при установке системы потребуется выполнить несколько дополнительных шагов, описанных в setup the HashTool while booting [broken link: invalid section] . Рекомендуется отключить Secure Boot через настройки UEFI перед установкой Arch Linux. Отключение этой опции не должно вызвать никаких проблем с загрузкой Windows 8/8.1.
Единственная проблема с отключением Secure Boot — для выполнения этого действия требуется физический доступ к компьютеру, поскольку Microsoft выступила категорически против добавления возможности удалённого (и даже локального программного) управления этой функцией.
Быстрый запуск
Быстрый запуск — новая функция, появившаяся в Windows 8, позволяющая ускорить запуск системы. Ускорение достигается за счёт частичной гибернации системы, т. е. часть оперативной памяти сжимается и складывается на жёсткий диск. Это вызывает следующую проблему — при использовании другой операционной системы изменение файлов на диске может привести к потере данных в Windows. Даже если не использовать системный раздел с Windows из другой ОС, проблемы могут возникнуть из-за изменения файлов на системном разделе EFI. Следовательно, для обеспечения большей стабильности работы Windows рекомендуется отключить функцию быстрого запуска ещё до начала установки Linux, воспользовавшись этой инструкцией.
Драйвер ntfs-3g автоматически обнаруживает случаи использования функции быстрого запуска и отказывается монтировать разделы в режиме чтения-записи, пока Windows не будет корректно перезагружена.
Ограничения имён файлов в Windows
В Windows полное имя файла (включая путь) не может содержать больше 260 символов.
Кроме того, Windows налагает ограничения на символы, которые можно использовать в именах файлов, для обеспечения совместимости со старыми программами. Следующие символы нельзя использовать в именах файлов и директорий:
- (знак «больше»)
- : (двоеточие)
- » (двойные кавычки)
- / (прямой слэш)
- \ (обратный слэш)
- | (вертикальная черта)
- ? (вопросительный знак)
- * (звёздочка)
Эти ограничения налагаются Windows, но не NTFS: любая другая операционная система может использовать символы из этого списка на разделе NTFS без каких-либо проблем. Однако, при попытке получить доступ к таким файлам из Windows она не сможет их обнаружить, запустит проверку диска программой chkdsk , которая может решить проблему, просто удалив файлы, что приведёт к потере данных.
Для новых файлов драйвер NTFS-3G позволяет применять ограничения Windows, если использовать опцию windows_filenames (см. fstab (Русский)).
Установка
Рекомендуемый способ установки двух систем — сначала установить Windows, используя для её разделов только часть диска и оставив немного свободного места. После заврешения установки Windows, загрузитесь в установочную среду Linux, создайте необходимые разделы и выполните установку в них, оставив разделы Windows нетронутыми. Если вы используете режим UEFI, установщик Windows создаст системный раздел EFI, который можно использовать для установки загрузчика Linux.
Системы с BIOS
Используя загрузчик Linux
Вы можете использовать один из следующих загрузчиков: GRUB либо Syslinux.
Используя загрузчик Windows
При использовании этого метода загрузчик Windows запускает GRUB, который, в свою очередь, загружает Arch Linux.
Загрузчик Windows Vista/7/8/8.1
Чтобы загрузчик Windows смог «увидеть» раздел Linux, один из разделов необходимо отформатировать в FAT32 (в примере далее будет использоваться раздел /dev/sda3 ). Некоторые источники утверждают, что раздел, с которым работает загрузчик Windows, обязательно должен быть первичным (primary), но есть сообщения об удачном использовании расширенного (extended) раздела.
- Когда дойдёте до этапа установки GRUB, выполните установку не в MBR, а в раздел, соответствующий директории / /boot .
- Из операционной системы Linux сделайте копию загрузочного сектора, вводя следующие команды от имени суперпользователя в командный интерпретатор:
- Загрузите Windows и откройте содержимое созданного ранее раздела с FAT32. Скопируйте файл linux.bin, созданный на предыдущем этапе, на раздел C:\ . Запустите командный интерпретатор (cmd) от имени администратора и выполните команду:
- BCDEdit выведет на экран буквенно-цифровой идентификатор, который далее будет обозначаться как
. Пример такого идентификатора — (у вас он будет отличаться). Введите в окно терминала следующие команды, заменяя на ваше значение идентификатора:
Осталось перезапустить систему и проверить результат.
Загрузчик Windows 2000/XP
Подробную информацию об использовании такого метода загрузки можно найти здесь [устаревшая ссылка 2020-08-02] . Обратите внимание, что у этого метода нет каких-либо значимых преимуществ перед использованием загрузчика Linux, при этом он всё равно требует наличия раздела /boot и гораздо сложнее в настройке.
Системы с UEFI
Загрузчики systemd-boot (Русский) и rEFInd (Русский) автоматически обнаруживают загрузчик Windows ( \EFI\Microsoft\Boot\bootmgfw.efi ) и добавляют его в свои меню, поэтому для них не требуется какой-либо дополнительной настройки.
Если вы используете GRUB (2), следуйте этому руководству.
Syslinux (как минимум, версии по 6.03-pre9 включительно) и ELILO не поддерживают передачу процесса загрузки другим приложениям EFI, поэтому они не могут использоваться для загрузки Windows в этом режиме.
🔧 Как установить Arch Linux в 2020 году
Я не админ, не программист и опыта в Linux у меня не очень много. Поэтому вполне возможно, что где-то я не прав. Инструкцию публикую ради таких же новичков в Linux, как и я, которые хотят поэкпериментировать и более детально изучить Linux.
Решил на днях привести в порядок свой ноутбук и поставить туда Linux.
Ставить решил Arch Linux, так как ноутбук очень слабенький и нужна минимальная установка. Ну и хочется просто поиграться.
Здесь расскажу, как я ставил Arch на ноутбук с UEFI. Опишу лишь базовую установку. Без графического интерфейса.
Качаем образ
Качаем образ с сайта дистрибутива здесь . Закидываем на флешку с помощью Rufus (Windows) или аналогом для Linux. У меня на Pop!_os установлена минималистичная утилита Popsicle, которая отлично справилась со своей задачей.
Вставляем в USB-порт, в настройках UEFI ставим загрузку с флешки и грузимся.
Проверяем интернет
Сразу проверяем, есть ли у нас доступ в Интернет, чтобы не потерять время зря:
Если видим, что пакеты возвращаются, то значит с интернетом всё в порядке, можно идти дальше. Если соединение проводное, то скорее всего всё будет работать из коробки. В моём же случае нужно настраивать Wi-Fi.
Когда я ставил Арч в декабре 2019 года, драйверов для моей wifi-карточки в ядре не было, проходилось подключать Android-смартфон в качестве USB-модема. Но вот уже июнь 2020 года и, о чудо, все wifi-сети отлично ищутся и подключаются.
Выбираем нужную wifi-сеть, соглашаемся с названием профиля и вводим пароль.
Но без проблем не обошлось: wifi-menu может подключится к wifi-сети, только если наш wifi-интерфейс изначально выключен. А он почему-то был включен. Судя по комментам на реддите, это проблема июньского образа.
Смотрим какие у нас есть интернет-интерфейсы:
1: lo : mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: wlan0 : mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether c4:3a:35:90:6d:2e brd ff:ff:ff:ff:ff:ff
Видим наш интерфейс wlan0. В скобках видно, что он UP. Исправляем:
После этого можно спокойно вызывать wifi-menu и подключатся.
Русский язык в установщике
Чтобы нам было попроще, стоит с порога подрубить русский язык.
Загрузка шрифта с кириллицей:
Создаём локаль. Открываем файл /etc/locale.gen в редакторе nano:
Тут надо раскомментировать нашу локаль: ищем строку ru_RU.UTF-8 и убираем решетку.
Должно получится примерно так:
.
# ru_RU ISO-8859-5
# ru_RU.CP1251 CP1251
# ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8
# ru_UA KOI8-U
# ru_UA.UTF-8 UTF-8
# rw_RW UTF-8
.
Сохраняем Ctrl+S и выходим Ctrl+X .
Генерируем указанную локаль и включаем русский язык:
Обновляем системное время
Разбиваем диск на разделы
Я установил в свой ноутбук чистый SSD. На него и буду ставить систему.
Диск буду разбивать на 3 раздела: загрузочный /boot , корневой / и домашний /home .
Смотрим, какие диски есть в нашем распоряжении:
Так выглядит диски и их разделы в моём ноутбуке: loop0, sda, sdb, mmcblk0. Теперь надо понять, какой диск нам нужен.
loop0 игнорируем, mmcblk0 имеет разделы с файловой системой ntfs, значит это встроенный диск с Windows, sdb имеет упоминание ARCHISO, это наша флешка, остаётся неразмеченный sda. Это это и есть нужный мне диск.
В вашем случае всё будет по-другому. Не сотрите там случайно чего-нибудь)))
Открываем наш диск в fdisk:
Общие
d удалить раздел
F показать свободное неразмеченное пространство
l список известных типов разделов
n добавление нового раздела
p вывести таблицу разделов
t изменение типа раздела
v проверка таблицы разделов
i вывести информацию о разделе
Разное
m вывод этого меню
u изменение единиц измерения экрана/содержимого
x дополнительная функциональность (только для экспертов)
Сценарий
I загрузить разметку из файла сценария sfdisk
O записать разметку в файл сценария sfdisk
Записать и выйти
w запись таблицы разделов на диск и выход
q выход без сохранения изменений
Создать новую метку
g создание новой пустой таблицы разделов GPT
G создание новой пустой таблицы разделов SGI (IRIX)
o создание новой пустой таблицы разделов DOS
s создание новой пустой таблицы разделов Sun
- g — создаём таблицу GPT
- n — добавляем новый раздел. Просто жмём везде Enter, кроме пункта Last sector. В нём указываем размер раздела. Первый раздел будет загрузочный, на него нужно 260-512 мегабайт. Поэтому пишем: +512M.
- Добавляем раздел для корня файловой системы размером 40-60G.
- И последний раздел на всё оставшееся место. Просто не указываем ничего в пункте Last sector.
- t — изменяем тип первого раздела на EFI System. Номер раздела 1 и тип раздела 1.
- p — удостоверяемся, что всё верно.
- w — сохраняем изменения.
Команда (m для справки): g
Created a new GPT disklabel (GUID: E5F989F0-6FB1-A243-A8AD-4B424FDBAF61).
Команда (m для справки): n
Номер раздела (1-128, default 1):
Первый сектор (2048-468862094, default 2048):
Last sector, +/-sectors or +/-size
Создан новый раздел 1 с типом ‘Linux filesystem’ и размером 512 MiB.
Команда (m для справки): n
Номер раздела (2-128, default 2):
Первый сектор (1050624-468862094, default 1050624):
Last sector, +/-sectors or +/-size
Создан новый раздел 2 с типом ‘Linux filesystem’ и размером 60 GiB.
Команда (m для справки): n
Номер раздела (3-128, default 3):
Первый сектор (126879744-468862094, default 126879744):
Last sector, +/-sectors or +/-size
Создан новый раздел 3 с типом ‘Linux filesystem’ и размером 163,1 GiB.
Команда (m для справки): t
Номер раздела (1-3, default 3): 1
Тип раздела (введите L для получения списка типов разделов): 1
Тип раздела ‘Linux filesystem’ изменен на ‘EFI System’.
Команда (m для справки): w
Таблица разделов была изменена.
Вызывается ioctl() для перечитывания таблицы разделов.
Синхронизируются диски.
Если при создании раздела появляется вопрос Partition X contains a X signature. Do you want to remove the signature? Отвечаем Y
Форматируем в нужные файловый системы:
mkfs.vfat /dev/sda1 -n BOOT
mkfs.ext4 /dev/sda2 -L ROOT
mkfs.ext4 /dev/sda3 -L HOME
Монтируем корневой раздел:
Создаём папки для других разделов и монтируем их:
cd /mnt
mkdir boot home
cd
mount /dev/sda1 /mnt/boot
mount /dev/sda3 /mnt/home
Установка
Перед загрузкой пакетов нужно отредактировать файл со списком серверов:
Здесь находится список серверов, с которых пакетный менеджер будет качать пакеты. Скачивание будет происходить с самого первого сервера. Если он вдруг станет недоступен или на нём не окажется нужного нам пакета, то скачивание начнётся со следующего и т. д.
Нам нужно поднять сервера, которые ближе всего к нам, в самый верх файла.
Находим русские сервера. Для этого жмём Ctrl+W и вводим Russia. Копируем строчку Server = http://. с помощью Ctrl+K, вставляем в самый верх файла с помощью Ctrl+U.
Теперь начинаем установку системы с помощью скрипта pacstrap:
pacstrap /mnt base linux linux-firmware base-devel man-db man-pages nano sudo git networkmanager grub efibootmgr
- base — основные программы.
- linux — ядро.
- linux-firmware — файлы прошивок для linux.
- base-devel — утилиты для разработчиков. Нужны для AUR.
- man-db — просмотрщик man-страниц.
- man-pages — куча man-страниц (руководств).
- nano — простой консольный текстовый редактор. Если умете работать в vim, то можете поставить его вместо nano.
- sudo — позволяет обычным пользователем совершать действия от лица суперпользователя.
- git — приложение для работы с репозиториями Git. Нужен для AUR и много чего ещё.
- networkmanager — сервис для работы интернета. Вместе с собой устанавливает программы для настройки.
- grub — загрузчик операционной системы. Без него даже загрузиться в новую систему не сможем.
- efibootmgr — поможет grub установить себя в загрузку UEFI.
Первичная настройка
Сохраняем скелет примонтированных разделов:
Переходим в режим chroot.
Грубя говоря, мы типа вошли в только что установленную систему в качестве рута.
Генерируем /etc/adjtime с помощью:
Устанавливаем московский временной пояс:
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Если Вы живите не в московском временной поясе, то Вам нужно выбрать подходящий пояс. Смотрим доступные пояса:
ls /usr/share/zoneinfo
ls /usr/share/zoneinfo/Нужный_Регион
Настраиваем локаль по-умолчанию для новой системы:
Открываем файл с локалями:
Надо раскомментировать ru_RU.UTF-8.
И прописываем шрифты:
После этого нужно подредактировать хуки:
Ищём строчку HOOKS и добавляем в конце 3 хука (внутри скобок):
HOOKS = (. consolefont keymap systemd)
Создаём загрузочный образ:
Установка загрузчика
Устанавливаем загрузчик в загрузочный раздел:
grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=GRUB
В —efi-directory указываем путь нашего загрузочного раздела. У меня это /dev/sda1.
Устанавливаем микрокод для процессора:
# Если у Вас процессор Intel, то:
pacman -S intel-ucode
# Если у Вас процессор AMD, то:
pacman -S amd-ucode
Генерируем конфигурационный файл:
Пароль рута
Нужно установить пароль для пользователя root:
Заводим интернет
Задаём имя компьютера в сети:
Добавляем записи hosts:
Пишем в конце файла:
127.0.0.1 localhost
::1 localhost
127.0.1.1 имя_компьютера.localdomain имя_компьютера
Чтобы интернет включался автоматически при запуске, пишем:
systemctl enable NetworkManager.service
Создаём обычного пользователя
Нужно создать пользователя, под которым мы будем входить в систему:
useradd -m -G wheel -s /bin/bash имя_пользователя
И ставим ему пароль:
Настраиваем sudo
Редактируем файл sudoers с помощью команды visudo. По умолчанию будет попытка открыть vi, но у нас он даже не установлен. Поэтому укажем, что редактор у нас nano:
И убираем % в начале строки. Сохраняем и выходим.
Готово! Перезагружаемся.
Выходим из режима chroot:
Размонтируем файловую систему:
И перезагружаемся в новую систему:
Можем заходить в созданного пользователя и устанавливать нужное ПО, например, графическое окружение.
Если у вас беспроводное соединение, запустите nmtui и подключитесь к сети.