I’m making my first attempt to install Arch Linux and using the installation guide to work off. The steps I have taken are:
1) run the arch linux DVD and select the option to run live
2) ls /sys/firmware/efi/efivars [Note: efi does not exist, so using a traditional boot]
3) ip address add 192.168.0.232/32 broadcast + dev eno1
4) ip add del 192.168.0.43/24 dev eno1
5) ip route show – verify that 192.168.0.1 is the default router [Note: It is and I have a network connection.]
6) fdisk -l [Note: The needed file systems are displayed]
7) mount -t ext4 /dev/sda1 /mnt
pacstrap /mnt base [Note: shown below]
I have tried to do the install process 3 times and have received errors each time when running pacstrap. The first two times I did not capture there errors, but on the third try I captured the errors and present them below in an abbreviated version of the output, starting with «START OUTPUT» and ending with «END OUTPUT». I have broken up the output such that most output is displayed in ‘code’ sections and the error messages are in bold print. I have deleted a couple of thousand lines from the out and show elipses (…) where the omissions were made.
My questions are about the errors:
Question 1
Regarding the conflicting files error: Why would there be conflicting files on a new install where everything is being downloaded as part of the package installation?
Question 2
Again regarding the conflicting files error: How do I determine what the conflicts are?
Question 3
Regarding the failed to install packages error: I’m assuming this error message came about because of the conflicting files error, i.e. pacstrap will not install packages if there are errors reported. Is this correct?
START OUTPUT
==> Creating install root at /mnt
==> Installing packages to /mnt
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
resolving dependencies...
looking for conflicting packages...
Packages (111) acl-2.2.53-2 archlinux-keyring-20200108-1 argon2-20190702-2 attr-2.4.48-2 audit-2.8.5-6 bash-5.0.016-1 bzip2-1.0.8-3 ca-certificates-20181109-3 ca-certificates-mozilla-3.50-1 ca-certificates-utils-20181109-3 coreutils-8.31-3 cracklib-2.9.7-2 cryptsetup-2.3.0-1 curl-7.68.0-1 db-5.3.28-5 dbus-1.12.16-5 device-mapper-2.02.186-5 e2fsprogs-1.45.5-1 expat-2.2.9-3 file-5.38-3 filesystem-2019.10-2 findutils-4.7.0-2 gawk-5.0.1-2 gcc-libs-9.2.1+20200130-2 gdbm-1.18.1-3 gettext-0.20.1-3 glib2-2.62.5-1 glibc-2.31-1 gmp-6.2.0-1 gnupg-2.2.19-1 gnutls-3.6.12-1 gpgme-1.13.1-3 grep-3.4-1 gzip-1.10-3 hwids-20200204-1 iana-etc-20200224-1 icu-65.1-3 iproute2-5.5.0-1 iptables-1:1.8.4-1 iputils-20190709-2 json-c-0.13.1-3 kbd-2.2.0-5 keyutils-1.6.1-3 kmod-26-3 krb5-1.17.1-1 less-551-3 libarchive-3.4.2-1 libassuan-2.5.3-2 libcap-2.31-1 libcap-ng-0.7.10-1 libcroco-0.6.13-1 libelf-0.177-2 libffi-3.2.1-4 libgcrypt-1.8.5-2 libgpg-error-1.37-1 libidn2-2.3.0-1 libksba-1.3.5-2 libldap-2.4.49-1 libmnl-1.0.4-3 libnetfilter_conntrack-1.0.7-1 libnfnetlink-1.0.1-3 libnftnl-1.1.5-1 libnghttp2-1.39.2-2 libnl-3.5.0-2 libpcap-1.9.1-2 libpsl-0.21.0-2 libsasl-2.1.27-2 libseccomp-2.4.2-1 libsecret-0.20.1-1 libssh2-1.9.0-2 libtasn1-4.16.0-1 libtirpc-1.2.5-1 libunistring-0.9.10-2 libusb-1.0.23-2 libutil-linux-2.35.1-1 libxml2-2.9.10-1 licenses-20191011-2 linux-api-headers-5.4.17-1 lz4-1:1.9.2-2 mpfr-4.0.2-2 ncurses-6.2-1 nettle-3.5.1-2 npth-1.6-2 openssl-1.1.1.d-2 p11-kit-0.23.20-2 pacman-5.2.1-4 pacman-mirrorlist-20200207-1 pam-1.3.1-2 pambase-20190105.1-2 pciutils-3.6.4-1 pcre-8.43-2 pcre2-10.34-3 perl-5.30.1-1 pinentry-1.1.0-5 popt-1.16-12 procps-ng-3.3.15-2 psmisc-23.3-2 readline-8.0.004-1 sed-4.8-1 shadow-4.8.1-1 sqlite-3.31.1-1 systemd-244.3-1 systemd-libs-244.3-1 systemd-sysvcompat-244.3-1 tar-1.32-3 tzdata-2019c-3 util-linux-2.35.1-1 xz-5.2.4-2 zlib-1:1.2.11-4 zstd-1.4.4-1 base-2-2
Total Installed Size: 532.10 MiB
:: Proceed with installation? [Y/n]
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
error: failed to commit transaction (conflicting files)
filesystem: /mnt/bin exists in filesystem
filesystem: /mnt/etc/mtab exists in filesystem
...
tzdata: /mnt/usr/bin/zdump exists in filesystem
...
iproute2: /mnt/usr/share/man/man8/tipc.8.gz exists in filesystem
Errors occurred, no packages were upgraded.
==> ERROR: Failed to install packages to new root
END OUTPUT
Last edited by jjanderson5 (2020-02-29 13:31:11)
I am trying to install Arch Linux on my Acer Aspire 4830tg, but I keep running into problems.
Some background knowledge: I am trying to install Arch off a USB stick and I got the ISO image using bittorrent. I am also trying to install it alongside of Windows 8 (which is already installed).
When I boot into Arch linux I get this error:
:: Mounting '/dev/disk/by-label/ARCH_201212' to 'run/archiso/bootmnt'
Waiting 30 seconds for device /dev/disk/by-label/ARCH_201212 ...
ERROR: '/dev/disk/by-label/ARCH_201212' device did not show up after 30 seconds...
Falling back to interactive prompt
You can try to fix the problem manually, log out when you are finished
sh: can't access tty; job control turned off
I know that it will work if I run it on a virtual machine but whenever I try to install it on my laptop I keep getting this error. And since you can’t register for the Arch forums without an Arch terminal to run their captcha command I can’t ask this on their forums.
asked Dec 15, 2012 at 16:28
1
I got this error using an ISO to USB program on Windows.
The problem was that the filesystem label did not change to ‘ARCH_201306’ when the program formatted the USB drive. In my case, it was still labelled ‘PENDRIVE’.
This is why ‘/dev/disk/by-label/ARCH_201306‘ never shows up. The USB drive has the wrong name.
Solution is to rename the USB drive to ‘ARCH_201306’ (or similar name based on the release date).
answered Jun 24, 2013 at 21:52
razzintownrazzintown
5545 silver badges7 bronze badges
2
According to this page, the problem is because you are booting from a USB drive. Try the solution suggested there, type this command at the prompt (you may have to type exit
or hit enter
first to get a prompt):
ln -s /dev/sdb1 /dev/archiso
That assumes that your USB drive is detected as /dev/sdb
. To find out if it is the case, run:
cat /proc/scsi/scsi
Other solutions are also suggested on the thread I linked to.
answered Dec 15, 2012 at 16:45
terdon on striketerdon on strike
52.2k14 gold badges124 silver badges168 bronze badges
2
First, check this post: https://bbs.archlinux.org/viewtopic.php?id=142473
They mention something about specifying the wrong device when creating the disk. In particular, maybe you used /dev/sdx1 instead of /dev/sdx
If that doesn’t help, I suggest you try the two options to create the live USB they give in their wiki: https://wiki.archlinux.org/index.php/USB_Installation_Media
Then, if it keeps failing, try Unetbootin to generate the bootable USB.
If you still can’t make it work, try either using ArchBang (fastest option), the Netboot image, or an older snapshot of Arch (not too old, or it won’t have systemd).
Finally, if all of the above failed, cry yourself to sleep and install another distribution when you wake up
answered Dec 15, 2012 at 16:44
balkianbalkian
9145 silver badges11 bronze badges
1
I encountered this problem because I rushed into installing Arch Linux via UNetbootin.
This is not recommended since UNetbootin overwrites syslinux.cfg
on the USB stick.
To make Arch Linux boot after UNetbootin copied the installation files to the USB stick, you have to edit syslinux.cfg
:
default menu.c32
prompt 0
menu title Archlinux Installer
timeout 100
label unetbootindefault
menu label Archlinux_x86_64
kernel /arch/boot/x86_64/vmlinuz
append initrd=/arch/boot/x86_64/archiso.img archisodevice=/dev/sdb1 ../../
label ubnentry0
menu label Archlinux_i686
kernel /arch/boot/i686/vmlinuz
append initrd=/arch/boot/i686/archiso.img archisodevice=/dev/sdb1 ../../
answered Oct 2, 2016 at 14:15
Matthias BraunMatthias Braun
1,1021 gold badge16 silver badges29 bronze badges
1
If used Unetbootin, try pressing Tab on the boot dialog for the options and add archisolabel=LABEL_OF_YOUR_USB_DRIVE
on the /ubkern
command line.
For me, even having the right USB label already as ARCH_yyyymm
I had to enter this information.
Tip from here.
answered Aug 28, 2016 at 19:13
vmassuchettovmassuchetto
3031 gold badge3 silver badges11 bronze badges
1
Though @razzintown’s answer is correct, you can create a symbolic link if the error occurred during installation.
ln -s /dev/sdb /dev/disk/by-label/ARCH_201609
Where sdb is you usb disk and ARCH_201609 is the desired mount point label the installation is asking for.
It worked for me, hope ti solves your problem too.
answered Oct 6, 2016 at 19:42
Quick way from here:
mv /dev/disk/by-label/THE_RIGHT_LABEL_FOUND_WITH_TAB /dev/disk/by-label/THE_LABEL_INSTALLATION_WANTS
exit
Of course replace capitalized words accordingly.
answered Nov 16, 2020 at 2:47
insigninsign
1154 bronze badges
I just wound up installing it with a CD. It was much easier and it didn’t have any problems mounting. I would also recommend using the Bittorrent download link, since it hash checks it as it is downloading, verses using a http download unless you are going to actually run the hash check when its done downloading.
Thanks for all the suggestions everyone.
answered Dec 24, 2012 at 5:58
werdhowerdho
3131 gold badge3 silver badges7 bronze badges
2
Причин может быть множество , а последствия могут быть разными. (с)
- Ссылка
grub-mkconfig -o /boot/grub/grub.cfg
- Ссылка
Ответ на:
комментарий
от mord0d 15.08.21 16:56:21 MSK
Извиняюсь, сейчас все будет)
yalef
(15.08.21 16:57:12 MSK)
- Ссылка
В каком boot’е ее нет? Как ставил? Рядом с другой ОС или форматнул диск вначале? Если да, как форматировал? Короче говоря, опиши подробно весь процес установки от и до.
Dog ★★
(15.08.21 16:58:38 MSK)
- Ссылка
Це усё потому, что установщик – УГ. Ручками всё надёжно бы установилось.
/telepath mode off
А теперь давай рассказывай, что делал, как и на какие разделы устанавливал, включен ли Secure Boot, все дела.
- Показать ответы
- Ссылка
Ответ на:
комментарий
от Korchevatel 15.08.21 17:00:27 MSK
установщик – УГ
Это касается абсолютно всех установщиков. За ними регулярно приходится разгребать.
mord0d ★★★★★
(15.08.21 17:06:16 MSK)
- Ссылка
Рассказываю. Ставил через archinstall. Не рядом с другой системой. Делал полностью новую разметку по инсталлеру, два раздела один загрузочный efi и один основной ext4, пробовал и btrfs, но результат все равно всегда один и тот же. Насчет secure boot хз
yalef
(15.08.21 17:08:25 MSK)
- Показать ответы
- Ссылка
Ответ на:
комментарий
от yalef 15.08.21 17:08:25 MSK
Пробуйте ручками по руководству. Заодно будете знать как делается и где возможно был прокол в инсталлере. Удачи.
xDShot ★★★★★
(15.08.21 17:10:44 MSK)
- Ссылка
Ответ на:
комментарий
от yalef 15.08.21 17:08:25 MSK
Ответ на:
комментарий
от yalef 15.08.21 17:08:25 MSK
Какой загрузчик ставил? Grub? В настройках биоса какой режим загрузки стоит? Если ставишь efi, то и загружаться материнка должна через UEFI
snake266 ★★
(15.08.21 17:11:28 MSK)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от anonymous 15.08.21 17:11:14 MSK
Ответ на:
комментарий
от snake266 15.08.21 17:11:28 MSK
Ставил grub, в биосе стоит uefi
yalef
(15.08.21 17:13:40 MSK)
- Ссылка
Ответ на:
комментарий
от mord0d 15.08.21 16:56:21 MSK
Ответ на:
комментарий
от anonymous 15.08.21 17:16:32 MSK
Ну так и я не настоящий сварщик!
mord0d ★★★★★
(15.08.21 17:37:17 MSK)
- Ссылка
Ответ на:
комментарий
от yalef 15.08.21 17:11:50 MSK
а лог инсталлера не находил? он мог систему установить, а с настройкой загрузки не справиться… а мог и на каком-то этапе запнуться.
anonymous
(15.08.21 18:01:43 MSK)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от anonymous 15.08.21 18:01:43 MSK
Ответ на:
комментарий
от yalef 15.08.21 18:32:41 MSK
хороший вопрос. инсталлер мог сохранять его в ФС в памяти компьютера, тогда после перезагрузки его уже нет. а мог и в новой системе, тогда он где-то корневом разделе. логично посмотреть в /var/log/ – но это моя логика, а что сделали разработчики инсталлера я не в курсе.
во время установки были какие-либо сообщения, подсказки, ошибки?
anonymous
(15.08.21 19:08:20 MSK)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от anonymous 15.08.21 19:08:20 MSK
В том то и дело, что не было никаких ошибок. Установка выполнилась корректно, инсталлер предложил сделать chroot в новую систему. После перезагрузки — пусто. В boot menu системы просто нет
yalef
(15.08.21 19:22:29 MSK)
- Показать ответы
- Ссылка
Ответ на:
комментарий
от yalef 15.08.21 18:32:41 MSK
короче, посмотрел его исходники – он пишет в журнал: другими словами после перезагрузки этих сообщений не увидеть (99,999%).
anonymous
(15.08.21 19:27:38 MSK)
- Ссылка
Ответ на:
комментарий
от yalef 15.08.21 19:22:29 MSK
chroot делал?
на уефи инсталлеры почему-то обычно спотыкаются. я в прошлом году дебиан ставил через его инсталлер – вот он завершался с сообщением невозможно установить (или не установлен?) загрузчик. тоже загрузка uEFI. пришлось самому доделывать )
anonymous
(15.08.21 19:33:41 MSK)
- Ссылка
Ответ на:
комментарий
от Korchevatel 15.08.21 17:00:27 MSK
Да там не установщик же…5 строчек из мануала по установке, которые работают на железке автора этой поделки — шаг влево/право — памагити арч не ставится.
izmena ★★
(15.08.21 19:38:48 MSK)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от izmena 15.08.21 19:38:48 MSK
это просто своеобразная ловушка для дураков, отсеиваются те кто не может поставить вручную.
anonymous
(15.08.21 20:05:05 MSK)
- Ссылка
Зачем тебе арч? Ставь kde neon, как будет опыт сменишь на рач.
anonymous
(15.08.21 22:35:36 MSK)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от yalef 15.08.21 19:22:29 MSK
Чтобы в boot menu появился пункт запуска ArhLinu ты должен был ставить его в UEFI режиме.
А чтобы он ставился в UEFI режиме ты должен был запустить установочную систему в UEFI режиме.
Также чтобы в загрузочном меню UEFI появился пункт вызова UEFI загрузчика Arch Linux или запуска EFI-Stub ядра нужно в efivars создать запись для вызова загрузчика или ядра.
Создать записи в EFIVARS можно через программу efibootmgr. А также посмотреть уже имеющиеся записи.
Или сделать так, чтобы EFI файл загрузчика (ядра) назывался EFIBOOTBOOTX64. EFI для 64 битнойго EFI или EFIBOOTBOOTIA32. EFI — для 32 битного.
Тогда по умолчанию он будет запускаться при старте компьютера (ноутбука.)
За подробностями вот сюда:
- https://wiki.archlinux.org/title/GRUB
- https://wiki.archlinux.org/title/EFISTUB
anonymous
(15.08.21 23:38:08 MSK)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от yalef 15.08.21 18:32:41 MSK
Ответ на:
комментарий
от anonymous 15.08.21 22:35:36 MSK
kde neon не ставится в бтрфс, не ставился. Далее не проверял
Sapetuko ★
(21.08.21 14:40:36 MSK)
- Ссылка
зачем Арч когда есть Манджаро? раньше всегда ставил Арч, теперь ставлю Манджаро КДЕ, доволен, все работает. Зачем какой то Арчинсталл когда можно через терминал поставить? штук 15 команд и все.
Sapetuko ★
(21.08.21 14:43:01 MSK)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от anonymous 15.08.21 23:38:08 MSK
хоспади…
создаешь efi раздел, кладешь туда граб — готово.
antech
(22.08.21 20:26:36 MSK)
- Ссылка
Ответ на:
комментарий
от Sapetuko 21.08.21 14:43:01 MSK
я очень сомневаюсь что этот инсталер нельзя просто выключить и все сделать традиционным способом, но если вдруг у арча есть снапы реп ежедневные, можно вытянуть оттуда исошник постарше без вот этого вот, а потом просто обновить.
antech
(22.08.21 20:44:12 MSK)
- Показать ответ
- Ссылка
Ответ на:
комментарий
от antech 22.08.21 20:44:12 MSK
Та не кто не заставляет инсталлер использовать более того он не предназначен для установки новичками. А лишь как заготовка
anonymous
(22.08.21 21:32:32 MSK)
- Ссылка
Ответ на:
комментарий
от ephecaff 22.08.21 21:58:06 MSK
Ответ на:
комментарий
от ephecaff 22.08.21 21:58:06 MSK
Ответ на:
комментарий
от antech 22.08.21 20:27:32 MSK
да, в манджаре инсталлер и у меня никогда с ним проблем не было в отличии от кде неон и убунту
Sapetuko ★
(23.08.21 10:25:28 MSK)
- Ссылка
# |
|
Темы: 1 Сообщения: 7 Участник с: 04 января 2020 |
Доброго времени суток, дорогие форумчане.
Прошу прощения за беспокойство. Собственно, сам вопрос. В процессе установки Арча, по одному видео на ютубе, столкнулся с одной проблемой. После того как он выполняет команду pacstrap -U /mnt, потом показывает папку /boot, у него там уже есть необходимые .img файлы (inintram) Загружаюсь в режиме UEFI Пробовал ставить grub, но даже после этого система не грузилась. Можете пожалуйста просто на человеческом языке объяснить, что должно быть в этой папке, ядро системы, или только загрузчик? И как мне все это поставить, чтобы нормально работало? Пробовал mkinitcpio, но он ругался, что файл linux.preset не найден. Заранее большое спасибо. |
iradia |
# |
Темы: 6 Сообщения: 85 Участник с: 02 марта 2019 |
>Jameson Темы: 1 Сообщения: 1 Участник с: 04 января 2020 Сегодня я часто это вижу)) |
Jameson |
# (отредактировано 3 года, 5 месяцев назад) |
Темы: 1 Сообщения: 7 Участник с: 04 января 2020 |
Блин, я знаю, что это стремно, типо по видео устанавливать, и т.д. и т.п., но что мне делать, если я не опытный в этом. Есть большое желание научиться этому, и тоже примкнуть к вашим рядам. |
Mirk |
# |
Темы: 7 Сообщения: 305 Участник с: 20 мая 2018 заблокирован |
https://wiki.archlinux.org/index.php/Installation_guide |
vall |
# |
Темы: 45 Сообщения: 1786 Участник с: 28 марта 2017 |
Посмотрите. Может быть чего недоустановили. |
Pzychozes |
# |
Темы: 17 Сообщения: 122 Участник с: 23 ноября 2016 |
Скорее невнимательность + ютуб. Есть официальный гайд на арчвики. В гайде нет ни слова про:
Есть:
Генерация fstab:
Создание образа initramfs:
(где linux — это ядро) |
Jameson |
# |
Темы: 1 Сообщения: 7 Участник с: 04 января 2020 |
Ой, спасибо, ваш ответ по ссылке очень емко объясняет что же все таки должно быть, но не устанавливается автоматически)))) |
Jameson |
# |
Темы: 1 Сообщения: 7 Участник с: 04 января 2020 |
Даа, это косяк. Ну, природа людская такая, искать более легкие пути решения проблем. Уроком на всю жизнь будет)))))) |
Jameson |
# |
Темы: 1 Сообщения: 7 Участник с: 04 января 2020 |
Ребят, плюс еще такой вопрос.
В общем, у меня система BIOS с поддержкой UEFI. |
Jameson |
# (отредактировано 3 года, 5 месяцев назад) |
Темы: 1 Сообщения: 7 Участник с: 04 января 2020 |
А какой пакет содержит в себе ядро системы, я че то никак разобраться не могу?
Это ложное «озарение»?)))) |
Многие пользователи ОС Linux рано или поздно желают перейти на более удобный и настраиваемый дистрибутив, нежели тот, который они использовали раньше. В этой статье я расскажу вам, как установить Arch с шифрованным LVM с разбором ошибок, с которыми Вы можете столкнуться в начале.
Поехали!
0. Создание загрузочной флешки
Если Вы используете виртуальную машину (что я очень советую сделать перед установкой арча на реальную машину), то этот этап можно опустить. Иначе, скачиваем iso образ с официального сайта и проверяем его контрольные суммы:
- Для Windows, образ прожигается в программе Rufus.
- Для Linux, вставляем флешку и пишем в терминале:
$ sudo -i
# lsblk //здесь смотрим, на каком разделе флешка — например, sdX
# dd bs=4M if=путь/до/archlinux.iso of=/dev/sdX status=progress oflag=sync
Загружаемся с этой флешки и переходим к следующему этапу.
1. Подключение к интернету
Здесь чаще всего юзер сталкивается с проблемой, если использует образ без wifi-menu, который мы так любили. Но ничего страшного, у нас есть iwctl или проводное соединение (надеюсь!)
При использовании wifi, сначала узнаем имя девайса, после чего подключимся к нему, написав имя девайса (например, wlp8s0), пароль и ssid БЕЗ кавычек:
# iwctl
[iwd]# device list
[iwd]# iwctl —passphrase PASSPHRASE station DEVICE connect SSID
При использовании провода, проблем возникать не должно. Настроили? Пингуем!
# ping 8.8.8.8
# ping ya.ru
Не забудьте прервать пинг командой Ctrl+C, если засмотрелись на выполненный пункт работы =)
Иначе идем сюда и делаем по инструкции:
2. Успешный старт
Подгрузим русский язык, проверим драйвера, обновим ключи на всякий случай (последние 4 команды можно не выполнять):
# loadkeys ru
# setfont cyr-sun16
# timedatectl set-ntp true
# modprobe dm-mod
# modprobe dm-crypt
# pacman-key —init
# pacman-key —populate
# pacman-key —refresh-keys —keyserver keys.gnupg.net
# pacman -Syy —noconfirm
3. Разметка диска
Некоторые шифруют перед разметкой, например в этой статье. Мы так делать не будем.
Я предпочитаю инструмент cfdisk, в нем все управляется с клавиатуры. Создаем в нем три раздела: под boot, под swap и под LVM. При желании, закиньте раздел подкачки swap под LVM, но я буду делать вот так:
# cfdisk
Если Вы используете UEFI, то выбирайте метку gpt и тип раздела boot — EFI Sysytem, если у Вас Legacy boot, то метку dos, тип 83 и флажок bootable:
Не забудьте записать изменения (Write) и проверить разметку командой
# fdisk -l
# lsblk -f
Если что-то не так, идем и делаем разметку заново.
4. Монтируем и создаем логический объем
Внимание! Здесь и далее я использую название жесткого /dev/sda. Если у Вас SSD или виртуальный диск, уточните его название в fdisk -l и используйте его.
# mkswap /dev/sda2 -L swap
# swapon /dev/sda2
################ lvm #################
# pvcreate /dev/sda3
# vgcreate vg_arch /dev/sda3
# lvcreate -L 60G -n root vg_arch //или ваше количество гигабайт вместо 60!
# lvcreate -l 100%FREE -n home vg_arch
Домонтируем остальное (можно использовать другую файловую систему, кроме ext4, например f2fs или btrfs):
# mkfs.ext4 /dev/vg_arch/root
# mkfs.ext4 /dev/vg_arch/home
# mkfs.fat -F32 /dev/sda1 //для uefi
# mkfs.ext2 /dev/sda1 -L boot //для legacy
# mount /dev/vg_arch/root /mnt/
# mkdir /mnt/home
# mount /dev/vg_arch/home /mnt/home/
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
5. Шифрование LUKS
Здесь есть несколько вариаций, как шифровать логический объем на /dev/sda3. Мы используем luks2 формат, детальный, с запросом пароля, без лишних ключей:
# cryptsetup -v -y luksFormat —type luks2 /dev/sda3
# cryptsetup open /dev/sda3 cryptlvm
После чего нас спросят что-то о разрушении всех данных (но у нас ведь их нет, не страшно, пишем YES большими буквами) и запросят пароль, который будет вводиться при загрузке устройства. Подробнее о ключах тут:
6. Установка базовой системы, таблица
Здесь будем очень внимательны и предварительно сменим зеркала на самые ближние. Можно вручную прописать в файле /etc/pacman.d/mirrorlist русский яндекс сервер и еще пару штук серверов.
# pacman -S reflector —noconfirm
# reflector —verbose -l 50 -p https —sort rate —save /etc/pacman.d/mirrorlist
# reflector —verbose -l 15 —sort rate —save /etc/pacman.d/mirrorlist
# pacstrap /mnt base base-devel linux linux-headers dhcpcd which inetutils netctl wget networkmanager network-manager-applet mkinitcpio git dkms grub efibootmgr nano vi linux-firmware wpa_supplicant dialog
# genfstab -p -U /mnt >> /mnt/etc/fstab
Если первая команда начинает давать сбой, прерываем ее Ctrl+C и идем проверять пинг и зеркала еще раз.
7. Chroot (change root)
Здесь важнее всего строка №3, остальные нужны для предотвращения ошибки WARNING: Failed to connect lvmetad… WARNING: Device /dev/nvme0n1 not initialized in udev database…
# mkdir /mnt/hostlvm
# mount —bind /run/lvm /mnt/hostlvm
# arch-chroot /mnt
# ln -s /run/lvm /hostlvm
Если на этом этапе возникает проблема (что часто бывает), перепроверяем вывод команд mount, lsblk, pvdisplay, vgdisplay, lvdisplay. Монтируем разделы заново, если что-то не так, как задумывалось.
Добавляем волшебный /bin/bash в конце команды, чтоб заработало.
В случае успеха у нас с вами меняется приглашение в терминал (появляются квадратные скобочки).
# ping 8.8.8.8
А если не пингует, возвращаемся к пункту 1.
8. Настройка системы
Настроим время, язык, локали:
# timedatectl set-ntp true
# pacman -Syyu —noconfirm
# pacman -S lvm2 —noconfirm
# ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
# hwclock —systohc
# echo «ru_RU.UTF-8 UTF-8» >> /etc/locale.gen
# echo «KEYMAP=ru» >> /etc/vconsole.conf
# echo «FONT=cyr-sun16» >> /etc/vconsole.conf
# echo ‘LANG=»ru_RU.UTF-8″‘ > /etc/locale.conf
# echo «en_US.UTF-8 UTF-8» > /etc/locale.gen
# locale-gen
Выше команды описаны довольно кустарно, но Вы можете открывать файлы /etc/locale.gen, /etc/locale.conf, /etc/vconsole.conf и прописывать всё ручками. Прямо как написано в Вики.
После чего зададим имя компьютеру и юзеру, дадим юзеру и супер-юзеру пароль, добавим юзера в группу wheel:
# echo $hostname > /etc/hostname
# passwd
# useradd -m -g users -G wheel -s /bin/bash $username
# passwd $username
Чтобы иметь возможность использовать sudo, раскомментируем в файле /etc/sudoers строчку % wheel ALL=(ALL) ALL’.
Можем раскомментировать другую, чтоб выполнять что угодно без пароля, но это противоречит логике распределения прав, так что идем дальше.
9. Загрузчик
Если используем UEFI:
# bootctl install
# echo ‘ default arch ‘ > /boot/loader/loader.conf
# echo ‘ timeout 10 ‘ >> /boot/loader/loader.conf
# echo ‘ editor 0’ >> /boot/loader/loader.conf
# echo ‘title Arch Linux’ > /boot/loader/entries/arch.conf
# echo «linux /vmlinuz-linux» >> /boot/loader/entries/arch.conf
GRUB:
# pacman -S grub grub-customizer —noconfirm
# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
UEFI-GRUB (зачем? не знаю, на вкус и цвет):
# pacman -S grub —noconfirm
# grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=GRUB
# grub-mkconfig -o /boot/grub/grub.cfg
10. Образ mkinitcpio и др.
После этого добавим intel/amd ucode, чтоб потом не мучаться с проблемами отсутствия звука:
////amd
# pacman -S amd-ucode —noconfirm
# echo ‘initrd /amd-ucode.img ‘ >> /boot/loader/entries/arch.conf
////intel
# pacman -S intel-ucode —noconfirm
# echo ‘ initrd /intel-ucode.img ‘ >> /boot/loader/entries/arch.conf
////для всех!
# echo «initrd /initramfs-linux.img» >> /boot/loader/entries/arch.conf
Если у нас внезапно оказалось несколько ОС и мы их еще не форматировали и не убил, поставим os-prober.
Редактируем /etc/mkinitcpio.conf, и в HOOKS добавляем lvm2 — перед filesystems:
# nano /etc/mkinitcpio.conf
# usr, fsck and shutdown hooks. class=»cdx-marked-text marked-text»>HOOKS=«base udev autodetect modconf block lvm2 filesystems keyboard fsck»
# mkinitcpio -p linux
Опционально: добавим репозиторий multilib для работы с 32-битными пакетами (обычно он не нужен). Если нужен, выполняем следующую команду и раскомментируем строки [multilib] и Include = /etc/pacman.d/mirrorlist после нее.
# nano /etc/pacman.conf
11. Иксы, менеджер рабочего стола
Здесь ради примера я покажу, как настроить GNOME 3 и XFCE, т.к. они просты и приятны в использовании. Для начала обновимся:
# pacman -Syy xorg-server xorg-drivers —noconfirm
GNOME:
# pacman -S gnome gnome-extra gdm —noconfirm
# systemctl enable gdm.service -f
XFCE:
# pacman -S xfce4 pavucontrol xfce4-goodies —noconfirm
# pacman -S xorg-xinit —noconfirm
# cp /etc/X11/xinit/xinitrc /home/$username/.xinitrc
# chown $username:users /home/$username/.xinitrc
# chmod +x /home/$username/.xinitrc
# sed -i 52,55d /home/$username/.xinitrc
# echo «exec startxfce4 » >> /home/$username/.xinitrc
# mkdir /etc/systemd/system/[email protected]/
# echo » [Service] » > /etc/systemd/system/[email protected]/override.conf
# echo » ExecStart=» >> /etc/systemd/system/[email protected]/override.conf
# echo ExecStart=-/usr/bin/agetty —autologin $username —noclear %I 38400 linux >> /etc/systemd/system/[email protected]/override.conf
# echo ‘ [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx ‘ >> /etc/profile
# pacman -S lxdm —noconfirm
# systemctl enable lxdm.service -f
12. Выход из chroot
В принципе, мы уже всё сделали. Установим на всякий случай firefox, networkmanager и neofetch (последний — исключительно для красоты).
# pacman -S networkmanager networkmanager-openvpn network-manager-applet ppp firefox neofetch —noconfirm
# systemctl enable NetworkManager.service
# systemctl enable dhcpcd.service
Теперь у нас не должно быть проблем с интернетом. Чтобы все было так же славно и со звуком, ставим:
# pacman -Sy pulseaudio-bluetooth alsa-utils pulseaudio-equalizer-ladspa xf86-video-ati
# nano /home/$username/.asoundrc
И заполняем этот файлик в соответствии с требованиями wiki.
И выходим!
# exit
# umount -R /mnt
# reboot
При перезагрузке выбираем Boot existing OS.
Хотелось бы язвительно сказать «Готово!» и послать Вас изучать форумы со своими проблемами, но позволю себе совет: если Вы увидели меню GRUB, и система не загрузилась:
- идем обратно в Boot Arch Linux
- монтируем разделы как показано в пункте 4
- генерируем (или проверяем) таблицу разделов как в пункте 6
- chroot’имся как в пункте 7
- создаем новый образ с помощью grub-mkconfig, как в пункте 9
- exit, reboot
13. Красота требует жертв!
Когда Вы обошли еще несколько форумов и наконец стартовали Иксы, и зашли в свой менеджер рабочего стола, откройте терминал и напишите:
$ neofetch
Наслаждайтесь!
Надеюсь, моя статья Вам помогла разобрать частые ошибки и настроить систему правильно.
А если вдруг Вы отчаялись поставить Арч самостоятельно, можете использовать мой скрипт с гитхаба. Спасибо за прочтение
$ echo ‘I use Arch btw’
Состояние перевода: На этой странице представлен перевод статьи General troubleshooting. Дата последней синхронизации: 15 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
General troubleshooting — Устранение общих неполадок в системе.
Эта статья дает советы по устранению общих проблем. Для решения проблем, связанных с конкретной программой, посетите соответствующую страницу Wiki.
Общие процедуры
Когда случается сбой, очень важно всегда читать все появляющиеся сообщения об ошибках. Однако иногда бывает трудно получить полное сообщение об ошибке, например в графических приложениях. Вот что можно попробовать, чтобы получить подробную информацию об ошибке:
- Запустите приложение в терминале, чтобы можно было просмотреть, что оно выводит в stdout/stderr.
- Включите более подробный вывод информации (обычно для этого у приложения есть параметр вроде
--verbose
/-v
/-V
или--debug
/-d
), если информации всё ещё недостаточно для отладки. - Иногда такого параметра нет, и нужно включать подробный вывод в файле настроек приложения.
- Приложение также может записывать информацию в файл журнала. Обычно журналы располагаются в
/var/log
,$HOME/.cache
или$HOME/.local
. - Если в приложении нет возможности включить подробный вывод, всегда можно запустить strace и другие подобные программы.
- Включите более подробный вывод информации (обычно для этого у приложения есть параметр вроде
- Проверьте журнал systemd. Возможно, ошибка оставила следы и в этом журнале, особенно если она влияет на другие приложения.
dmesg
показывает сообщения из кольцевого буфера ядра. Это полезно, если диск по какой-то причине недоступен, но этот журнал может быть неполным, так как размер буфера ограничен. По возможности используйтеjournalctl
.journalctl
имеет больше опций по поиску и фильтрации сообщений, чемdmesg
, и по умолчанию использует человекочитаемые временные метки.
- Всегда рекомендуется проверять соответствующие баг-трекеры, чтобы узнать, известна ли ваша проблема и есть ли её решение.
- В зависимости от того, что предпочитают разработчики, обычно есть баг-трекер, а иногда и форум или даже, например, IRC-канал.
- Существует баг-трекер Arch Linux, который следует использовать в первую очередь для ошибок в создаваемых пакетах.
Дополнительная поддержка
Если вам нужна дополнительная поддержка, вы можете спросить об этом на форуме] или в IRC.
При обращении за поддержкой публикуйте полный вывод/журнал, а не только те участки, которые вы считаете важными. Пригодится следующая информация:
- Полный вывод всех задействованных команд — не выбирайте только то, что считаете нужным.
- журнал systemd.
- Для более подробного вывода используйте параметр загрузки
systemd.log_level=debug
. Логов станет очень много, поэтому включайте его только при необходимости. - Не используйте параметр
-x
, поскольку он загромождает вывод и затрудняет его чтение. - Используйте параметр
-b
, если не требуются журналы предыдущих загрузок. Отсутствие этого параметра может вывести очень много старых логов, которые могут даже оказаться слишком большими для pastebin-сервисов.
- Для более подробного вывода используйте параметр загрузки
- Релевантные файлы конфигурации
- Задействованные драйверы
- Версии связанных с проблемой пакетов
- Журнал ядра:
journalctl -k
илиdmesg
(для запуска обоих нужны права root). - Xorg: в зависимости от установки, используемый экранный менеджер тоже может иметь значение.
Xorg.log
может быть расположен в одном из нескольких мест: системный журнал,/var/log/
или$HOME/.local/share/xorg/
.- Некоторые экранные менеджеры, например LightDM, также могут помещать
Xorg.log
в свой собственный каталог журналов.
- Pacman: Если недавнее обновление что-то сломало, посмотрите в
/var/log/pacman.log
.- Может быть полезно использовать параметр
--debug
.
- Может быть полезно использовать параметр
Один из лучших способов опубликовать эту информацию — использовать pastebin.
Pastebin-сервис выдаст вам ссылку, которую можно будет отправить на форум или в IRC.
Также рекомендуется прочитать: how to properly report issues.
Проблемы загрузки
При диагностике проблем с загрузкой очень важно знать, на каком этапе происходит сбой.
- Прошивка (UEFI или BIOS)
- Обычно имеет только базовые инструменты для отладки.
- Убедитесь, что Secure Boot отключен.
- Загрузчик
- Одна из самых распространённых операций здесь — изменение параметров ядра.
- initramfs
- Обычно предоставляет аварийную оболочку (emergency shell).
- В зависимости от выбранных хуков, в ней доступен либо dmesg, либо журнал.
- Собственно система
- В зависимости от того, насколько сильно она повреждена, здесь может быть достаточно простого вызова оболочки восстановления.
К сожалению, инструментов отладки, предоставляемых любым этапом, может быть недостаточно для исправления сломанного компонента. В этом случае для восстановления может быть использован archiso.
Сообщения консоли
После процесса загрузки экран очищается и появляется приглашение к входу в систему, из-за чего пользователи не могут прочитать вывод init и сообщения об ошибках. Это поведение по умолчанию может быть изменено с помощью методов, описанных в следующих разделах.
Обратите внимание, что, независимо от выбранного варианта, сообщения ядра можно посмотреть после загрузки с помощью journalctl -k
или dmesg
. Для отображения всех журналов текущей загрузки используйте journalctl -b
.
Управление потоком
Это базовое управление, которое применимо к большинству эмуляторов терминала, включая виртуальные консоли (VC):
- Нажмите
Ctrl+s
, чтобы приостановить вывод. - И
Ctrl+q
, чтобы возобновить его.
Это приостанавливает не только вывод, но и программы, которые пытаются печатать на терминал, поскольку вызовы write()
будут блокироваться, пока вывод приостановлен. Если ваш init выглядит зависшим, убедитесь, что системная консоль не приостановлена.
Чтобы увидеть сообщения об ошибках, которые уже были выведены на экран, смотрите getty (Русский)#Отображение загрузочных сообщений на tty1.
Отладочный вывод
Большинство сообщений ядра скрыты во время загрузки. Вы можете увидеть больше сообщений, добавляя различные параметры ядра. Самые простые из них:
debug
включает отладочные сообщения как для ядра, так и для systemdignore_loglevel
заставляет печатать все сообщения ядра.
Можно добавить и другие параметры, которые могут быть полезны в определённых ситуациях:
earlyprintk=vga,keep
печатает сообщения ядра в самом начале процесса загрузки, в случае, если ядро аварийно завершает работу до появления вывода. Вы должны изменитьvga
наefi
для систем EFI.log_buf_len=16M
выделяет больший (16 МиБ) буфер сообщений ядра, чтобы гарантировать, что отладочный вывод не будет перезаписан.
Существуют также параметры для включения отладки определённых подсистем, например bootmem_debug
, sched_debug
. Кроме того, initcall_debug
может быть полезен для исследования зависаний загрузки. (Ищите вызовы, которые не завершились.) Более подробная информация есть в документации по параметрам ядра.
netconsole
netconsole — это модуль ядра, который отправляет все сообщения журнала ядра (например, dmesg) по сети на другой компьютер, не задействуя userspace (например, syslogd). Название «netconsole» не очень корректное, так как на самом деле это не консоль, а скорее служба удалённого логирования.
Он может быть как встроен ядро, так и подключаться отдельным модулем. Встроенный netconsole инициализируется сразу после включения сетевой карты и вызовет указанный интерфейс как можно скорее. Модуль в основном используется для перехвата паники ядра на headless-машине или в других ситуациях, когда userspace неработоспособен.
Оболочки восстановления
Попадание в оболочку восстановления (recovery shell) в процессе загрузки может помочь вам точно определить, где и почему что-то не работает. Есть несколько связанных с этим параметров ядра, но все они запускают обычную оболочку, из которой можно выйти, чтобы ядро продолжило свою работу:
rescue
запускает оболочку вскоре после перемонтирования корневой файловой системы чтение/записьemergency
запускает оболочку ещё раньше, до того, как большинство файловых систем будут смонтированыinit=/bin/sh
(в крайнем случае) изменяет программу init на командную оболочку, которая запустится от имени root. Иrescue
, иemergency
полагаются на systemd, а подмена init будет работать, даже если systemd сломан.
Другим вариантом является debug-shell от systemd, который добавляет root shell на tty9
(переключиться туда можно с помощью Ctrl+Alt+F9
). Его можно включить, либо добавив systemd.debug_shell
в параметры ядра, либо включив debug-shell.service
.
Важно: Не забудьте отключить debug-shell после завершения работы. Оболочка root, автоматически запускающаяся при каждой загрузке, является риском для безопасности системы.
Отладка модулей ядра
Смотрите Модуль ядра#Получение информации.
Отладка оборудования
- Можно вывести дополнительную отладочную информацию об оборудовании, как описано в статье udev (Русский)#Отладочная печать.
- Убедитесь, что обновления микрокода применяются в вашей системе.
- Для тестирования оперативной памяти смотрите Stress testing#Stressing memory[ссылка недействительна: раздел не найден].
Отладка зависаний
К сожалению, зависания обычно трудно отладить, а некоторые из них требуют много времени для воспроизведения. Некоторые зависания относительно просты в отладке:
- Продолжает ли играть звук? Если да — видимо, просто завис экран. Это могут быть проблемы с видеодрайвером.
- Отвечает ли компьютер на запросы? Попробуйте подключиться по SSH, если переключение в консоль не работает.
- Индикатор HDD (если есть) показывает высокую нагрузку на диск? Вероятно, используется слишком много памяти и система начала активно использовать файл подкачки. Смотрите ответ на StackExchange для получения информации о зависании при большой записи.
Если ничего из этого не подходит, попробуйте выполнить корректное завершение работы. Одиночное короткое нажатие на кнопку выключения отправит системе сигнал завершения работы, после чего она может отвиснуть и показать экран завершения работы. Если кнопка выключения не помогает, можно попробовать выполнить корректное завершение работы с помощью SysRq. Корректное завершение очень важно, чтобы журнал записал имеющиеся сообщения на диск. При нештатном выключении компьютера последние сообщения в журнале могут быть потеряны, а вместе с ними может потеряться и информация о проблеме. Из-за этого полные зависания компьютера труднее в отладке.
Удалённое чтение журнала может помочь, если зависание не позволяет записать что-либо на диск. Самое простое и примитивное решение для базовой отладки может быть таким:
$ ssh зависающий_хост journalctl -f
Многие фатальные зависания, при которых вся система больше не отвечает и требует принудительного выключения, могут быть связаны с ошибками в прошивке, драйверах или железе. Попробуйте другое ядро (смотрите Ядро#Отладка регрессий) или даже другой дистрибутив Linux или операционную систему, обновите прошивку и запустите диагностику оборудования, это может помочь найти проблему.
Совет: Рекомендуется попробовать обновить прошивку, так как обновления могут устранить странные проблемы.
Если зависание не позволяет собрать какие-либо журналы или другую информацию, необходимую для отладки, попробуйте воспроизвести зависание через LiveCD. Если для воспроизведения зависания требуется графическая среда или если зависание может быть воспроизведено на archiso, используйте LiveCD другого дистрибутива, желательно не основанного на на Arch Linux, чтобы исключить возможность того, что зависание связано с версией или патчами ядра.
Если зависание всё ещё происходит даже в LiveCD, возможно, это проблемы с железом. Если же зависания больше нет, нужно разобраться в различиях между системами. Различные конфигурации, различия в версиях и параметрах ядра и другие подобные изменения могли устранить зависание.
Однако мигающий светодиод caps lock может указывать на панику ядра. Некоторые установки могут не показывать консоль, когда произошла паника ядра, что может сбить с толку и быть интерпретировано как другой вид зависания.
Отладка регрессий
Важно: Как правило, это приводит к частичному обновлению, которое является необходимым злом в данном конкретном случае. Действуйте осторожно и подготовьте способ восстановления системы на случай, если этот сценарий не позволит нормально загрузиться.
Если обновление вызывает проблему, но понижение версии конкретного пакета устраняет её — скорее всего, это регрессия. Наиболее важной частью отладки регрессий является проверка того, была ли проблема уже исправлена, поскольку это может сэкономить много времени. Для этого сначала убедитесь, что приложение полностью обновлено (например, убедитесь, что приложение имеет ту же версию, что и в официальных репозиториях). Если оно уже обновлено или если обновление не устраняет проблему, попробуйте использовать актуальную последнюю версию, обычно версию -git, которая может быть доступна в AUR. Если это устранит проблему, а версии с исправлениями ещё нет в официальных репозиториях, подождите, пока новая версия не появится в них, а затем перейдите на неё.
Если проблема не исчезла, отладьте её и/или проведите bisect и отправьте сообщение об ошибке в баг-трекер программы, чтобы разработчики узнали о ней и смогли её исправить.
Не получается использовать подключаемые устройства после обновления ядра
Чаще всего (но не только) это проявляется как:
- только что подключенные USB-накопители отображаются в dmesg, но отсутствуют в
/dev/
, - не получается использовать проводное/беспроводное соединение на ноутбуке, если оно ещё не использовалось перед обновлением ядра,
- modprobe выдаёт ошибку
FATAL: Module модуль not found in directory /lib/module/версияядра
при попытке загрузить модуль, который ещё не использовался перед обновлением ядра.
Как частично описано в разделе Обслуживание системы#Перезагружайтесь после обновлений, ядро будет обновлено не в момент обновления пакета, а только после перезагрузки. При этом модули ядра, расположенные в каталоге /usr/lib/module/версияядра/
, удаляются pacman’ом при установке нового пакета ядра. Как объясняется в FS#16702, такой подход позволяет не оставлять в системе файлы, не обрабатываемые менеджером пакетов, но приводит к вышеупомянутым симптомам. Чтобы устранить их, перезагружайтесь после обновления ядра. Более хорошим решением, которое ещё не реализовано, будет использование разных пакетов для разных версий ядра: основная проблема заключается в том, как обрабатывать удаление предыдущих версий ядра, когда они больше не нужны.
Другое решение доступно в виде kernel-modules-hook, где два хука pacman используют rsync для сохранения модулей ядра в файловой системе после обновления ядра, а служба systemd удаляет старые модули через четыре недели после этого.
Менеджер пакетов
Смотрите общие решения проблем и решение проблем с PGP-ключами.
Исправление сломанной системы
Если выполнялось частичное обновление, в первую очередь попробуйте обновить всю систему целиком. Может потребоваться перезагрузка.
# pacman -Syu
Если вы обычно загружались в графический интерфейс, а сейчас он не работает, можно попробовать попасть в консоль с помощью Ctrl+Alt+F1
— Ctrl+Alt+F6
и в ней запустить pacman.
Если система сломана настолько, что вы не можете запустить pacman, загрузите Arch ISO с USB-накопителя, компакт-диска или по сети через PXE. (Выполнять остальные шаги по установке системы не нужно.)
Загрузившись в Arch ISO, примонтируйте корневую файловую систему:
[ISO] # mount /dev/устройство /mnt
Примонтируйте внутри /mnt
другие нужные разделы, если вы их создавали, например:
[ISO] # mount /dev/bootУстройство /mnt/boot
Затем попробуйте зайти в chroot и запустить pacman в нём:
[ISO] # arch-chroot /mnt [chroot] # pacman -Syu
Если это не работает, выйдите из chroot и попробуйте:
[ISO] # pacman -Syu --sysroot /mnt
Если и это тоже не работает, попробуйте:
[ISO] # pacman -Syu --root /mnt --cachedir /mnt/var/cache/pacman/pkg
Совместная отладка в IRC
Смотрите IRC#Collaborative debugging.
fuser
fuser это утилита командной строки для определения процессов использующих ресурсы, таких как файлы, файловые системы и порты TCP / UDP.
fuser содержится в пакете psmisc, который должен быть уже установлен как часть мета-пакета base. Подробности есть в fuser(1).
Разрешения сессии
Примечание: Вы должны использовать systemd в качестве системы инициализации работы локальных сеансов [1] — которая необходима для разрешения polkit и ACL для различных устройств (смотрите /usr/lib/udev/rules.d/70-uaccess.rules
и [2])
Во-первых, убедитесь, что у вас есть действующий локальный сеанс X:
$ loginctl show-session $XDG_SESSION_ID
Должны получить на выходе Remote=no
и Active=yes
. Если это не так, убедитесь, что X работает на томже tty, где и произошел вход. Это нужно чтобы сохранить сеанс logind. Который обрабатывается по умолчанию /etc/X11/xinit/xserverrc
.
Основные polkit действия не требуют дальнейшей настройки. Некоторые действия polkit требуют дальнейшей проверки подлинности, даже при местной сессии. Для этой работы агент аутентификации polkit должен быть запущен. Смотрите больше информации по polkit#Authentication agents.
Ошибка при загрузке разделяемых библиотек
Если при использовании программы, вы получите сообщение об ошибке подобное:
error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory
Воспользуйтесь pacman или pkgfile для поиска пакета, которому принадлежит недостающая библиотека:
$ pacman -F libusb-0.1.so.4
extra/libusb-compat 0.1.5-1 usr/lib/libusb-0.1.so.4
В этом случае должен быть установлен пакет libusb-compat.
Также может оказаться, что зависимую программу нужно пересобрать после обновления библиотеки до новой версии (soname bump).
Ошибка также может означать, что пакет, который вы использовали для установки программы не перечисляет библиотеку в качестве зависимости в его PKGBUILD: если это официальный пакет, сообщите об ошибке; если это пакет AUR, сообщите об этом сопровождающему на странице пакета в AUR.
Смотрите также
- A how-to in troubleshooting for newcomers
- List of Tools for UBCD — Memtest-like tools to add to grub.cfg on UltimateBootCD.com
- Загрузочный раздел BIOS — Википедия
- REISUB
- Debug Logging to a Serial Console on Freedesktop.org
- How to Isolate Linux ACPI Issues on Archive.org
Многие пользователи ОС Linux рано или поздно желают перейти на более удобный и настраиваемый дистрибутив, нежели тот, который они использовали раньше. В этой статье я расскажу вам, как установить Arch с шифрованным LVM с разбором ошибок, с которыми Вы можете столкнуться в начале.
Поехали!
0. Создание загрузочной флешки
Если Вы используете виртуальную машину (что я очень советую сделать перед установкой арча на реальную машину), то этот этап можно опустить. Иначе, скачиваем iso образ с официального сайта и проверяем его контрольные суммы:
- Для Windows, образ прожигается в программе Rufus.
- Для Linux, вставляем флешку и пишем в терминале:
$ sudo -i
# lsblk //здесь смотрим, на каком разделе флешка — например, sdX
# dd bs=4M if=путь/до/archlinux.iso of=/dev/sdX status=progress oflag=sync
Загружаемся с этой флешки и переходим к следующему этапу.
1. Подключение к интернету
Здесь чаще всего юзер сталкивается с проблемой, если использует образ без wifi-menu, который мы так любили. Но ничего страшного, у нас есть iwctl или проводное соединение (надеюсь!)
При использовании wifi, сначала узнаем имя девайса, после чего подключимся к нему, написав имя девайса (например, wlp8s0), пароль и ssid БЕЗ кавычек:
# iwctl
[iwd]# device list
[iwd]# iwctl —passphrase PASSPHRASE station DEVICE connect SSID
При использовании провода, проблем возникать не должно. Настроили? Пингуем!
# ping 8.8.8.8
# ping ya.ru
Не забудьте прервать пинг командой Ctrl+C, если засмотрелись на выполненный пункт работы =)
Иначе идем сюда и делаем по инструкции:
2. Успешный старт
Подгрузим русский язык, проверим драйвера, обновим ключи на всякий случай (последние 4 команды можно не выполнять):
# loadkeys ru
# setfont cyr-sun16
# timedatectl set-ntp true
# modprobe dm-mod
# modprobe dm-crypt
# pacman-key —init
# pacman-key —populate
# pacman-key —refresh-keys —keyserver keys.gnupg.net
# pacman -Syy —noconfirm
3. Разметка диска
Некоторые шифруют перед разметкой, например в этой статье. Мы так делать не будем.
Я предпочитаю инструмент cfdisk, в нем все управляется с клавиатуры. Создаем в нем три раздела: под boot, под swap и под LVM. При желании, закиньте раздел подкачки swap под LVM, но я буду делать вот так:
# cfdisk
Если Вы используете UEFI, то выбирайте метку gpt и тип раздела boot — EFI Sysytem, если у Вас Legacy boot, то метку dos, тип 83 и флажок bootable:
Не забудьте записать изменения (Write) и проверить разметку командой
# fdisk -l
# lsblk -f
Если что-то не так, идем и делаем разметку заново.
4. Монтируем и создаем логический объем
Внимание! Здесь и далее я использую название жесткого /dev/sda. Если у Вас SSD или виртуальный диск, уточните его название в fdisk -l и используйте его.
# mkswap /dev/sda2 -L swap
# swapon /dev/sda2
################ lvm #################
# pvcreate /dev/sda3
# vgcreate vg_arch /dev/sda3
# lvcreate -L 60G -n root vg_arch //или ваше количество гигабайт вместо 60!
# lvcreate -l 100%FREE -n home vg_arch
Домонтируем остальное (можно использовать другую файловую систему, кроме ext4, например f2fs или btrfs):
# mkfs.ext4 /dev/vg_arch/root
# mkfs.ext4 /dev/vg_arch/home
# mkfs.fat -F32 /dev/sda1 //для uefi
# mkfs.ext2 /dev/sda1 -L boot //для legacy
# mount /dev/vg_arch/root /mnt/
# mkdir /mnt/home
# mount /dev/vg_arch/home /mnt/home/
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
5. Шифрование LUKS
Здесь есть несколько вариаций, как шифровать логический объем на /dev/sda3. Мы используем luks2 формат, детальный, с запросом пароля, без лишних ключей:
# cryptsetup -v -y luksFormat —type luks2 /dev/sda3
# cryptsetup open /dev/sda3 cryptlvm
После чего нас спросят что-то о разрушении всех данных (но у нас ведь их нет, не страшно, пишем YES большими буквами) и запросят пароль, который будет вводиться при загрузке устройства. Подробнее о ключах тут:
6. Установка базовой системы, таблица
Здесь будем очень внимательны и предварительно сменим зеркала на самые ближние. Можно вручную прописать в файле /etc/pacman.d/mirrorlist русский яндекс сервер и еще пару штук серверов.
# pacman -S reflector —noconfirm
# reflector —verbose -l 50 -p https —sort rate —save /etc/pacman.d/mirrorlist
# reflector —verbose -l 15 —sort rate —save /etc/pacman.d/mirrorlist
# pacstrap /mnt base base-devel linux linux-headers dhcpcd which inetutils netctl wget networkmanager network-manager-applet mkinitcpio git dkms grub efibootmgr nano vi linux-firmware wpa_supplicant dialog
# genfstab -p -U /mnt >> /mnt/etc/fstab
Если первая команда начинает давать сбой, прерываем ее Ctrl+C и идем проверять пинг и зеркала еще раз.
7. Chroot (change root)
Здесь важнее всего строка №3, остальные нужны для предотвращения ошибки WARNING: Failed to connect lvmetad… WARNING: Device /dev/nvme0n1 not initialized in udev database…
# mkdir /mnt/hostlvm
# mount —bind /run/lvm /mnt/hostlvm
# arch-chroot /mnt
# ln -s /run/lvm /hostlvm
Если на этом этапе возникает проблема (что часто бывает), перепроверяем вывод команд mount, lsblk, pvdisplay, vgdisplay, lvdisplay. Монтируем разделы заново, если что-то не так, как задумывалось.
Добавляем волшебный /bin/bash в конце команды, чтоб заработало.
В случае успеха у нас с вами меняется приглашение в терминал (появляются квадратные скобочки).
# ping 8.8.8.8
А если не пингует, возвращаемся к пункту 1.
8. Настройка системы
Настроим время, язык, локали:
# timedatectl set-ntp true
# pacman -Syyu —noconfirm
# pacman -S lvm2 —noconfirm
# ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
# hwclock —systohc
# echo «ru_RU.UTF-8 UTF-8» >> /etc/locale.gen
# echo «KEYMAP=ru» >> /etc/vconsole.conf
# echo «FONT=cyr-sun16» >> /etc/vconsole.conf
# echo ‘LANG=»ru_RU.UTF-8″‘ > /etc/locale.conf
# echo «en_US.UTF-8 UTF-8» > /etc/locale.gen
# locale-gen
Выше команды описаны довольно кустарно, но Вы можете открывать файлы /etc/locale.gen, /etc/locale.conf, /etc/vconsole.conf и прописывать всё ручками. Прямо как написано в Вики.
После чего зададим имя компьютеру и юзеру, дадим юзеру и супер-юзеру пароль, добавим юзера в группу wheel:
# echo $hostname > /etc/hostname
# passwd
# useradd -m -g users -G wheel -s /bin/bash $username
# passwd $username
Чтобы иметь возможность использовать sudo, раскомментируем в файле /etc/sudoers строчку % wheel ALL=(ALL) ALL’.
Можем раскомментировать другую, чтоб выполнять что угодно без пароля, но это противоречит логике распределения прав, так что идем дальше.
9. Загрузчик
Если используем UEFI:
# bootctl install
# echo ‘ default arch ‘ > /boot/loader/loader.conf
# echo ‘ timeout 10 ‘ >> /boot/loader/loader.conf
# echo ‘ editor 0’ >> /boot/loader/loader.conf
# echo ‘title Arch Linux’ > /boot/loader/entries/arch.conf
# echo «linux /vmlinuz-linux» >> /boot/loader/entries/arch.conf
GRUB:
# pacman -S grub grub-customizer —noconfirm
# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
UEFI-GRUB (зачем? не знаю, на вкус и цвет):
# pacman -S grub —noconfirm
# grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=GRUB
# grub-mkconfig -o /boot/grub/grub.cfg
10. Образ mkinitcpio и др.
После этого добавим intel/amd ucode, чтоб потом не мучаться с проблемами отсутствия звука:
////amd
# pacman -S amd-ucode —noconfirm
# echo ‘initrd /amd-ucode.img ‘ >> /boot/loader/entries/arch.conf
////intel
# pacman -S intel-ucode —noconfirm
# echo ‘ initrd /intel-ucode.img ‘ >> /boot/loader/entries/arch.conf
////для всех!
# echo «initrd /initramfs-linux.img» >> /boot/loader/entries/arch.conf
Если у нас внезапно оказалось несколько ОС и мы их еще не форматировали и не убил, поставим os-prober.
# pacman -S os-prober
Редактируем /etc/mkinitcpio.conf, и в HOOKS добавляем lvm2 — перед filesystems:
# nano /etc/mkinitcpio.conf
# usr, fsck and shutdown hooks. class=»cdx-marked-text marked-text»>HOOKS=«base udev autodetect modconf block lvm2 filesystems keyboard fsck»
# mkinitcpio -p linux
Опционально: добавим репозиторий multilib для работы с 32-битными пакетами (обычно он не нужен). Если нужен, выполняем следующую команду и раскомментируем строки [multilib] и Include = /etc/pacman.d/mirrorlist после нее.
# nano /etc/pacman.conf
11. Иксы, менеджер рабочего стола
Здесь ради примера я покажу, как настроить GNOME 3 и XFCE, т.к. они просты и приятны в использовании. Для начала обновимся:
# pacman -Syy xorg-server xorg-drivers —noconfirm
GNOME:
# pacman -S gnome gnome-extra gdm —noconfirm
# systemctl enable gdm.service -f
XFCE:
# pacman -S xfce4 pavucontrol xfce4-goodies —noconfirm
# pacman -S xorg-xinit —noconfirm
# cp /etc/X11/xinit/xinitrc /home/$username/.xinitrc
# chown $username:users /home/$username/.xinitrc
# chmod +x /home/$username/.xinitrc
# sed -i 52,55d /home/$username/.xinitrc
# echo «exec startxfce4 » >> /home/$username/.xinitrc
# mkdir /etc/systemd/system/[email protected]/
# echo » [Service] » > /etc/systemd/system/[email protected]/override.conf
# echo » ExecStart=» >> /etc/systemd/system/[email protected]/override.conf
# echo ExecStart=-/usr/bin/agetty —autologin $username —noclear %I 38400 linux >> /etc/systemd/system/[email protected]/override.conf
# echo ‘ [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx ‘ >> /etc/profile
# pacman -S lxdm —noconfirm
# systemctl enable lxdm.service -f
12. Выход из chroot
В принципе, мы уже всё сделали. Установим на всякий случай firefox, networkmanager и neofetch (последний — исключительно для красоты).
# pacman -S networkmanager networkmanager-openvpn network-manager-applet ppp firefox neofetch —noconfirm
# systemctl enable NetworkManager.service
# systemctl enable dhcpcd.service
Теперь у нас не должно быть проблем с интернетом. Чтобы все было так же славно и со звуком, ставим:
# pacman -Sy pulseaudio-bluetooth alsa-utils pulseaudio-equalizer-ladspa xf86-video-ati
# nano /home/$username/.asoundrc
И заполняем этот файлик в соответствии с требованиями wiki.
И выходим!
# exit
# umount -R /mnt
# reboot
При перезагрузке выбираем Boot existing OS.
Хотелось бы язвительно сказать «Готово!» и послать Вас изучать форумы со своими проблемами, но позволю себе совет: если Вы увидели меню GRUB, и система не загрузилась:
- идем обратно в Boot Arch Linux
- монтируем разделы как показано в пункте 4
- генерируем (или проверяем) таблицу разделов как в пункте 6
- chroot’имся как в пункте 7
- создаем новый образ с помощью grub-mkconfig, как в пункте 9
- exit, reboot
13. Красота требует жертв!
Когда Вы обошли еще несколько форумов и наконец стартовали Иксы, и зашли в свой менеджер рабочего стола, откройте терминал и напишите:
$ neofetch
Наслаждайтесь!
Надеюсь, моя статья Вам помогла разобрать частые ошибки и настроить систему правильно.
А если вдруг Вы отчаялись поставить Арч самостоятельно, можете использовать мой скрипт с гитхаба. Спасибо за прочтение
$ echo ‘I use Arch btw’
I keep getting an error when doing archinstall
Traceback (most recent call last): File «/usr/bin/archinstall», line 8, in <module> sys.exit(run_as_a_module()) File «/usr/lib/python3.10/site-packages/archinstall/init.py», line 281, in run_as_a_module File «/usr/lib/python3.10/site-packages/archinstall/lib/profiles.py», line 195, in execute script.execute() self.spec.loader.exec_module(sys.modules[self.namespace]) File «<frozen importlib._bootstrap_external>», line 883, in exec_module File «<frozen importlib._bootstrap>», line 241, in call_with_frames_removed File «/usr/lib/python3.10/site-packages/archinstall/examples/guided.py», line 286, in <module> if not archinstall.update_keyring(): line 46, in update_keyring File «/usr/lib/python3.18/site-packages/archinstall/lib/networking.py», if run_pacman («-Sy —noconfirm archlinux-keyring»). exit_code == 8: File «/usr/lib/python3.10/site-packages/archinstall/lib/pacman.py», return SysCommand (f’ (default_cmd) (args}’) line 28, in run_pacman File «/usr/lib/python3.10/site-packages/archinstall/lib/general.py», line 416, in init self.create_session() File «/usr/lib/python3. 18/site-packages/archinstall/lib/general.py», with SysCommandWorker ( line 467, in create_session File «/usr/lib/python3.18/site-packages/archinstall/lib/general.py», line 273, in exit__ archinstall.lib.exceptions. SysCallError: [‘/usr/bin/pacman’, ‘-Sy’, ‘—noconfirm’, ‘archlinux-keyring’] exited with abnormal exit code [256]: b’B/s 08:02 [###— raise SysCallError (f»(self.cmd) exited with abnormal exit code [(self.exit_code) 1: (self._trace_log[-588:1)», self.exit_code) 18%r archlinux-keyrin… 1181.8 KiB 2.18 MiB/s 88:88 [⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀##] 188Zrx1b[1E(8/1) checking keys in keyring ——] -] 8%r(1/1) checking keys in keyring keuring is not writablernerror: required key missing from keyringrnerror: failed to commit transaction (unexpected error)rnErrors occurred, no packages ere upgraded. rnx1b[?25h 1 root@archiso
[************##########] 188%rrndownloading required keys…rnerror: