Arch启动菜单中的“Arch Fallback”究竟是什么?
我一直在试图了解启动过程,但只有一件事让我无法理解..
一旦启动了 Linux 内核并安装了根文件系统 (/),就可以运行程序,并且可以集成更多内核模块以提供附加功能。要挂载根文件系统,必须满足某些条件。内核需要相应的驱动来访问根文件系统所在的设备(尤其是SCSI驱动)。内核还必须包含读取文件系统所需的代码(ext2、reiserfs、romfs 等)。也可以想象,根文件系统已经被加密了。在这种情况下,挂载文件系统需要密码。
初始 ramdisk(也称为 initdisk 或 initrd)正好解决了上述问题。Linux 内核提供了一个选项,在挂载实际的根文件系统之前,将一个小文件系统加载到 RAM 磁盘并在那里运行程序。initrd 的加载由引导加载程序(GRUB、LILO 等)处理。引导加载程序只需要 BIOS 例程即可从引导介质加载数据。如果引导加载程序能够加载内核,它也可以加载初始 ramdisk。不需要特殊的驱动程序。
如果 /boot 不是不同的分区,而是存在于 / 分区中,那么引导加载程序是否应该需要 SCSI 驱动程序来访问“initrd”映像和内核映像?如果您可以直接访问图像,那么我们究竟为什么需要 SCSI 驱动程序?
目前我正在使用 Linux Mint 17,我想双启动 FreeBSD 和 Linux Mint 17。
如何为 FreeBSD 10 创建可启动 USB?我试过Unetbootin,影像作家和powerISO,但它不工作。
我make menuconfig当时编译了一个 Linux make,现在我编译了最新版本的 Linux。如何将内核加载到 QEMU 中?
我有兴趣了解 Linux 如何处理单独的引导分区。我对实际执行此操作不感兴趣,但我想知道这是如何在幕后工作的。
考虑一个硬盘驱动器sda,它有两个分区sda1和sda2. 假设这sda2是包含 Linux 操作系统的root分区/。
我的理解是引导加载程序GRUB2安装到/boot. 但是,当目录/boot位于单独的分区上sda2时,如何在/实际安装之前发生这种情况?
/boot在这种情况下,BIOS、Master 引导记录和 GRUB(或文件)之间的交互如何成功发生?是/boot不是/在这个早期阶段中的数据实际上并未挂载到文件系统?
注意:这个问题涉及挂载根分区,但不讨论单独的引导分区。
过去 2 天,我一直在尝试创建可引导的 debian (jessie/8.4) 映像,据我所知,我的程序正确,但我无法正确设置文件系统。我相对确定我在这里做错了什么,缺少安装或/etc/fstab(我的图像中没有)。我希望有一些经验的人能够帮助我/向我展示我所缺少的东西。
以下是我在启动 qemu-system-x86 时看到的错误:
作为文本,然后作为实际屏幕截图:
fsck: error 2 (No such file or directory) while executing fsck.ext2 for /dev/sda1
fsck exited with status code 8
[FAILED] Failed to start Load/Save Random Seed
See `systemctl status systemd-random-seed.service` for details.
[FAILED] Failed to start Various fixups to make systemd work better on Debian.
See `systemctl status debian-fixup.service` for details.
...
[FAILED] Failed to start Update UTMP about System Boot/Shutdown.
See `systemctl status systemd-update-utmp.service` …Run Code Online (Sandbox Code Playgroud) 我已经在我的机器上安装了 centOS 7,过去 4-5 个月我一直在使用它,它运行良好。但是几天前由于停电(不正确关闭),我的机器发生了一些不好的事情。现在,当我启动系统时,它一开始就给了我这条消息。
XFS (dm-0): Internal error XFS_WAIT_CORRUPTED at line 1600 of file fs/xfs/libxfs/xfs_alloc.c. Caller xfs_free_extent+0xf9/0x130 [xfs]
XFS (dm-0): Failed to recover EFIs
Run Code Online (Sandbox Code Playgroud)
带有结束错误消息
...
Mounting /sysroot...
[ ***] A start job is running for /sysroot (3min 59s / 4min 31s)[240.527013] INFO: task mount:406 blocked for more than 120 seconds.
[ 240.527056] "echo 0 > /proc/sys/kernel/hung_task_timeout+secs" disables this message."
[FAILED] Failed to mount /sysroot.
See 'systemctl status sysroot.mount' for more details.
[DEPEND] Dependency failed for Initrd Root File …Run Code Online (Sandbox Code Playgroud) 我有一个很好的 Debian Jessie 安装运行,但后来我运行了apt-get update && apt-get upgrade && apt-get dist-upgrade.
然后重新启动后,它直接进入BIOS。我意识到 Grub 丢失了,所以我运行了一个 live cd 并输入了Rescue mode,挂载了我的根分区,+ 引导分区并运行了这些命令:
Grub 找到 linux 镜像:
root@debian:~# update-grub
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-4.9.0-3-amd64
Found initrd image: /boot/initrd.img-4.9.0-3-amd64
Found linux image: /boot/vmlinuz-4.9.0-0.bpo.3-amd64
Found initrd image: /boot/initrd.img-4.9.0-0.bpo.3-amd64
Found linux image: /boot/vmlinuz-3.16.0-4-amd64
Found initrd image: /boot/initrd.img-3.16.0-4-amd64
Found Ubuntu 16.10 (16.10) on /dev/sdb2
Adding boot menu entry for EFI firmware configuration
done
Run Code Online (Sandbox Code Playgroud)
然后grub-install: …
如何在 Ubuntu Server 17.10 机器上启动时运行脚本?我认为该方法在 17.10 中已更改。
我正在准备一份详细介绍 Linux 启动顺序的文档,从按下主机的开机按钮到登录提示出现。
如果我们可以将这里的正确答案合并和整理成一个单一的参考位置,那就太好了。请包括在启动期间可能需要注意的任何细节。一旦文档从所有方面都完成,我也会在此处发布文档详细信息并更新问题中的链接。
请考虑所有可能的情况,例如从磁盘启动、从 USB 启动、在 rootfs(/) 位于网络上的无盘客户端上从网络启动。
boot ×10
linux ×4
debian ×2
uefi ×2
arch-linux ×1
boot-loader ×1
bootable ×1
centos ×1
debootstrap ×1
freebsd ×1
grub ×1
grub2 ×1
initrd ×1
kernel ×1
linux-kernel ×1
live-usb ×1
mount ×1
netboot ×1
partition ×1
qemu ×1
shell-script ×1
ubuntu ×1
x86 ×1
xfs ×1