首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arch Linux安装:错误:成功安装根设备,但不存在/sbin/init

Arch Linux安装:错误:成功安装根设备,但不存在/sbin/init
EN

Stack Overflow用户
提问于 2021-06-15 14:39:12
回答 1查看 2K关注 0票数 0

我对linux相当陌生,但我决定直接深入到arch中去,以熟悉一切。不幸的是,我连安装工作都做不完--真可惜。

设置arch后引导时的错误是:

代码语言:javascript
复制
ERROR: Root device mounted successfully, but /sbin/init does not exist.
Bailing out, you are on your own. Good luck.

我去了lvm的luks上的btrfs

布局如下

代码语言:javascript
复制
sda
 |- sda1          512MB     fat32 /boot
 `- sda2          remaining lvm
     |- cryptswap 4GB       swap
     |- crypttmp  2GB       tmp   /tmp
     `- cryptroot remaining btrfs
         |- @                     /
         |- @home                 /home
         |- @snapshots            /.snapshots
         |- @log                  /var/log
         |- @cache                /var/cache
         `- @tmp                  /var/tmp

这些是我用来设置arch的命令和配置:

dd status=progress if=/dev/zero of=/dev/sda擦拭盘

gdisk /dev/sda

o清晰gpt表

引导分区

代码语言:javascript
复制
n
↵
↵
+512M
ef00

lvm分区

代码语言:javascript
复制
n
↵
↵
↵
8e00

w写入分区更改

设置lvm

代码语言:javascript
复制
pvcreate /dev/sda2
vgcreate vg1 /dev/sda2
lvcreate -L 4G -n cryptswap vg1
lvcreate -L 2G -n crypttmp vg1
lvcreate -l 100%FREE cryptroot vg1

设置加密

代码语言:javascript
复制
cryptsetup luksFormat /dev/vg1/cryptroot
cryptsetup open /dev/vg1/cryptroot root

使文件系统

代码语言:javascript
复制
mkfs.fat -F32 -n BOOT /dev/sda1
mkfs.btrfs --label ROOT /dev/mapper/root

创建btrfs子卷

代码语言:javascript
复制
mount /dev/mapper/root /mnt
cd /mnt

btrfs subvolume create @
btrfs subvolume create @home
btrfs subvolume create @snapshots
btrfs subvolume create @log
btrfs subvolume create @cache
btrfs subvolume create @tmp

cd ..
umount /mnt

安装btrfs子卷和引导分区

代码语言:javascript
复制
mount -o noatime,compress=lzo,space_cache=v2,discard=async,subvol=@ /dev/mapper/root /mnt

mkdir /mnt/home
mount -o noatime,compress=lzo,space_cache=v2,discard=async,subvol=@home /dev/mapper/root /mnt/home

mkdir /mnt/.snapshots
mount -o noatime,compress=lzo,space_cache=v2,discard=async,subvol=@snapshots /dev/mapper/root /mnt/.snapshots

mkdir /mnt/var
mkdir /mnt/var/log
mount -o noatime,compress=lzo,space_cache=v2,discard=async,subvol=@log /dev/mapper/root /mnt/var/log

mkdir /mnt/var/cache
mount -o noatime,compress=lzo,space_cache=v2,discard=async,subvol=@cache /dev/mapper/root /mnt/var/cache

mkdir /mnt/var/tmp
mount -o noatime,compress=lzo,space_cache=v2,discard=async,subvol=@tmp /dev/mapper/root /mnt/var/tmp

mkdir /mnt/boot
mount /dev/sda1 /mnt/boot

pacstrap /mnt base linux linux-firmware lvm2 btrfs-progs amd-ucode vim安装必需品

genfstab -L /mnt > mnt/etc/fstab生成fstab

arch-chroot /mnt

基本配置

代码语言:javascript
复制
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
hwclock --systohc
vim /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "KEYMAP=de-latin1" >> /etc/vconsole.conf
echo "devstation" >> /etc/hostname
vim /etc/hosts

vim /etc/mkinitcpio.conf

mkinitcpio.conf内容:

代码语言:javascript
复制
MODULES=(btrfs)
HOOKS=(base udev autodetect keyboard keymap consolefont modconf block lvm2 encrypt filesystems fsck)

mkinitcpio -p linux

bootctl install

echo "default arch" > /boot/loader/loader.conf

vim /boot/loader/entries/arch.conf

arch.conf含量

代码语言:javascript
复制
title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options cryptdevice=UUID={/dev/vg1/cryptroot uuid inserted here}:root root=/dev/mapper/root rw

exit

umount -a

poweroff

将拱形安装介质从计算机中拔出并启动。

引导输出

代码语言:javascript
复制
:: running early hook [udev]
Starting version 248.3-2-arch
:: running hook [udev]
:: Triggering uevents...
:: running hook [keymap]
:: Loading keymap...done.
:: running hook [encrypt]

A password is requires to acces the root volume:
Enter passphrase for /dev/mapper/vg1-cryptroot: {inserting passphrase}
:: performing fsck on '/dev/mapper/root'
:: mounting '/dev/mapper/root' on real root
:: running cleanup hook [udev]
ERROR: Root device mounted successfully, but /sbin/init does not exist.
Bailing out, you are on your own. Good luck.

sh: can't access tty; job control turned off
[rootfs ]#

显然我还没有设置密码和密码。这些将被设置与密码和fstab。我只是提到这一点,并且非常怀疑这是问题的一部分,因为它们只是目前还没有被任何东西识别的分区,不是吗?

我希望我没有错过任何命令或配置-我正在输入我观看的视频和头部,因为我发现没有一个视频有btrfs,luks,lvm配置。谢谢你的时间/帮助和阅读这篇文章。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-16 10:35:41

rootflags=subvol=@添加/boot/loader/entries/arch.conf,如下所示

代码语言:javascript
复制
title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options cryptdevice=UUID={/dev/vg1/cryptroot uuid inserted here}:root root=/dev/mapper/root rootflags=subvol=@ rw

成功了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67988408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档