笔者的源码位于GitHub: https://github.com/zasdfgbnm/mkinitcpio-docker-hooks ,同时读者也可以直接从AUR中搜索mkinitcpio-docker-hooks mkinitcpio-docker-hooks的使用 mkinitcpio-docker-hooks的使用流程大概分为如下几步: 确保你的/var/lib/docker位于某个btrfs分区中 准备一个适合在裸机上启动的 安装并配置mkinitcpio-docker-hooks mkinitcpio-docker-hooks的安装是在docker里面而不是当前运行在裸机上的系统中进行的。 安装过程在Dockerfile中的写法如下: RUN sudo -u user yaourt -S --noconfirm mkinitcpio-docker-hooks 安装完了mkinitcpio-docker-hooks 同时,我们还需要在/etc/mkinitcpio.conf中添加docker-btrfs这个hook。
首先打开 /etc/mkinitcpio.conf,找到 HOOKS 一行,添加 resume 钩子:$ vim /etc/mkinitcpio.conf... 写好的之后需要重新生成 initramfs,即在命令行上调用 sudo mkinitcpio -P。命令会诱发很多的输出,不过这不重要。 $ sudo mkinitcpio -P设置内核参数initramfs 配置的是钩子,也就是 resume 后需要处理的东西,我们需要在内核参数(kernel parameters)上告诉系统从哪里恢复上次的状态
重新生成 grub.cfg 文件 sudo grub-mkconfig -o /boot/grub/grub.cfg (1) 配置initramfs添加 resume hook 修改 /etc/mkinitcpio.conf 文件,在 HOOKS 中添加 resume sudo sed -i '/^HOOKS=/ s/)/ resume)/' /etc/mkinitcpio.conf 其中由两点需要注意: 由于分区的label udev 之后 由于 systemd hook 已经有了 resume 的功能,因此若已经有了 systemd hook,则无需再添加 udev hook (2) 重新生成initramfs sudo mkinitcpio
pacman -S networkmanager 初始文件 通常不需要创建新的initramfs,因为mkinitcpio是在使用pacstrap安装内核包时运行的。 对于LVM、系统加密或RAID,修改mkinitcpio.conf(5)并重新创建 initramfs 映像: # mkinitcpio -P 设置密码 设置root用户密码: # passwd 安装引导加载程序
. :: There are 3 providers available for initramfs: :: Repository core 1) mkinitcpio :: Repository -30-2 mkinitcpio-busybox-1.33.1-1 mpfr-4.1.0.p13-1 ncurses-6.2-2 nettle-3.7.3-1 npth /linux.preset: 'default' -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img The image may not be complete. ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback ' -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
1 if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/sda 最后初始化磁盘环境, “Make an initial ramdisk environment (mkinitcpio ) using presets (-p) suitable for Linux” : mkinitcpio -p linux 然后退出chroot,取消挂载再重启就可以了,重启之后记得拔出安装光盘(u盘
grub pacman -S os-prober efibootmgr os-prober grub-install --target=x86_64-efi --efi-directory=/boot mkinitcpio
# mkinitcpio -p linux 使用不带参数的passwd命令设置root密码: # passwd 配置主机名: # echo myhostname > /etc/hostname 然后将主机名添加到
# timedatectl set-ntp true 创建初始ramdisk环境 # mkinitcpio -p linux 设置root密码 使用不带参数的passwd可以设置root密码。
pacman -S os-prober efibootmgr # os-prober # grub-install --target=x86_64-efi --efi-directory=/boot # mkinitcpio
https://wiki.archlinux.org/index.php/NetworkManager_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 初始化文件系统 mkinitcpio