我在 uboot 中,想知道如何知道 uboot 正在使用什么 RAM 地址范围。
uboot 需要内存才能运行,因此它可能正在使用一些 RAM。我想避免修改这些 RAM 地址。
我如何知道 uboot 加载了哪个内存区域?
当前的英特尔服务器芯片组包括一个内置的“efi-shell”,它似乎基本上是一个简化的“NIX”,带有适合操作一些漂亮的 UEFI 引导选项的命令集。
英特尔的一些固件升级工具现在也需要“efi-shell”才能运行。
遗憾的是,即使该板支持 UEFI 启动,我也没有服务器芯片组。
efi-shell 可以从http://www.sourceforge.net/projects/efi-shell下载。但是,我找不到可启动的 ISO 或任何其他形式的可启动映像。
我试图制作一个可启动的闪存unetbootin,但没有成功。
关于如何制作可启动的 efi-shell 副本以便我可以在我的 RAID 卡上运行英特尔固件升级的任何想法?
据我了解,uefi bios 从 efi 分区加载 grub.efi。现在从 /boot 目录加载一堆 grub 模块和配置文件。
但是 grub 如何找到引导分区所在的正确设备呢?在 grub legacy 中,您通常将 grub 安装到特定分区,使用
# grub-install --root-directory=/dev/sda
Run Code Online (Sandbox Code Playgroud)
所以很清楚它会在哪里寻找引导目录。grub-efi 如何找出正确的设备?
默认情况下,systemd 会在出现最轻微的错误时进入紧急 shell。例如,如果 fstab 中的一个挂载由于某种原因失败,系统将立即无法启动。我管理着数十个不同的生产系统,我发现这种行为非常具有破坏性。(实际上我认为这是一个重大的设计失败,但这是个人意见)。
我想增加系统启动弹性。最佳情况下,系统应该始终启动,缺少驱动程序、安装等不应该丢弃紧急外壳(只显示警告),除非给定的错误会使控制台登录绝对不可能。能跑的,应该跑的。
我知道 systemd 会自动从 /etc/fstab 生成 *.mount 文件,我可以使用 nofail 选项和小 x-systemd.device 超时(或自己定义相关的 .mount 文件)。但是它不能解决我的问题,我想让系统更有弹性,每次“修补”fstab 不是很方便,我不确定还有多少其他可能的“问题”会导致我的系统无法启动,因为某个地方的一些开发人员认为它足够重要。
总之,我想重新控制我的机器,而不是让 systemd 决定什么问题严重到足以破坏启动过程。是否可以?
我刚刚建立了一个 Gentoo 基本系统(这意味着我现在可以启动和登录并使用它做一些事情)。我的根分区位于 LVM2 虚拟组中(具有单独的/boot分区)。为了启动,我需要将以下参数传递给内核:
root=/dev/ram0 real_root=/dev/vg/rootlv init=/linuxrc dolvm
Run Code Online (Sandbox Code Playgroud)
显然,它在挂载 root 之前使用初始 ramdisk 做一些事情(我猜是加载 LVM 的东西)。有没有办法可以将这段代码放入内核本身,这样就不需要 initrd 了?如果没有,我如何自己制作 initrd?
补充一点可能很有用,我曾尝试为非 LVM 根目录编译内核,没有 initrd 并且它运行良好。然后我试图将整个事情放在 LVM 下,但无法启动机器(我猜它无法处理 LVM 的东西)。然后我使用genkernel带有--lvm选项的工具,它创建了我当前正在使用的工作内核和 initrd。
现在我想跳过genkernel并自己做所有事情,最好没有 initrd 以便机器启动得更快(反正我不需要灵活性)。
我想尝试设置一台计算机,以便在同一个文件系统中安装多个 Linux。例如,filesytem将有3个文件夹:/Ubuntu_Precise,/Ubuntu_Oneiric,和/Ubuntu_Natty。
(我知道你可以用 BTRFS 和子卷来做到这一点,但我想使用 EXT4 来提高速度)。
我曾经使用 BTRFS 设置了多个不同发行版的安装,并且从运行开始,我知道 Grub 在从“非标准”路径启动 vmlinuz 和 initrd 映像方面做得很好。但是当我在做 BTRFS 的事情时,有rootflags=subvol=@<subvolume_name>一个告诉内核将该子卷挂载为文件系统中的 / 。是否有任何参数可以通过内核使其绑定挂载分区中的子文件夹作为 / 然后启动?
我认为对于其他部分,我相当接近。我知道如何在/etc/fstab. 此外,从我在 BTRFS 子卷中设置多个 linux 安装的系统时,我习惯于在 VM 中安装发行版,然后使用 rsync 迁移它,所以我不太担心我需要做什么获得正确的配置,我只是想找出正确的配置是什么。一旦我知道这一点,我应该能够轻松地迁移到子文件夹和文件编辑。
我已经了解虚拟化和分区,但这不是我要找的。目标计算机没有足够的能力进行虚拟化,并且分区不共享可用空间。我希望建立一个双/三/四/等引导Linux发行版的系统,但它是用一个文件系统完成的,因此不会出现“我有可用空间,但它在错误的分区中!”的情况。
如果有人建议如何编辑我的问题或其标题更清晰,我会全力以赴。
我目前正在尝试各种发行版,所以当我启动我的笔记本电脑时,我有几个操作系统可供选择。通常,所有这些发行版都安装grub2并位于列表顶部,因此它们是安装完成后启动的默认发行版。
但 Manjaro 做了一些不同的事情。它安装了一些版本,grub2它会记住我上次启动的发行版并继续启动那个发行版(重新启动时),直到我选择另一个发行版(然后它会启动那个发行版等等)。
这是我想象的吗?Manjaro 真的会这样做吗?如果是这样,我怎么能安装该版本的grub到我的系统?干杯。
这是我的/etc/grub.d/40_custom文件:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
Run Code Online (Sandbox Code Playgroud)
这是我的/etc/default/grub文件:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full …Run Code Online (Sandbox Code Playgroud) 我正在运行带有单一操作系统的笔记本电脑:东芝笔记本电脑 Core i3 上的 UbuntuMATE 15.04 Beta1 64 位。使用 UNetbootin 在实时 USB 驱动器上刻录“Elementary OS”后,发生的情况是:
- 重启后,笔记本电脑直接显示 UbuntuMATE 启动画面,没有像往常一样在开始时显示 Toshiba 标志。因此无法再访问 BIOS 或启动菜单。所以它直接启动到 UbuntuMATE 并正常运行。
安装引导修复并运行(推荐修复);它被中止向我显示此消息:“请在实时会话(实时 CD 或实时 USB)中使用此软件。这将启用此功能”...我无法从实时 CD 或 USB 启动作为我无法访问启动菜单。
启动信息摘要给了我这个链接http://paste.ubuntu.com/10664795/我可以寻求帮助提供信息。
我环顾了几个帖子,但找不到与我的情况相符的内容。
我到底该怎么做?我对 Linux 有点陌生(3 个月),我还在学习,所以我知道的不多。
我在某处读到不建议将引导分区放在基于 lvm 的分区上。但是,无论如何我都在做。然后我遇到的唯一问题是有时当我安装一个新的 Linux 发行版并将它的引导分区放在 lvm 上时,grub 无法检测到它。该grub-mkconfig命令通常会在生成grub.cfg文件时出错。但是,如果这是基于 lvm 的引导分区的唯一问题,我认为没关系。因为我知道如何修复它,只需为预期的引导分区提供正确的地址即可引导,然后一切正常。
那么,除此之外还有什么是 lvm 会导致问题的吗?因为,在我看来 lvm 非常灵活,并没有减慢系统的速度。
我的 Bananian Linux 在登录时浪费时间试图为未连接的 eth0 接口获取 DHCP 租用。好吧,延长线已连接到它,但另一端没有任何东西。
我有
auto eth0
iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)
设置在我的,/etc/network/interfaces因为我确实希望它在连接的情况下接收以太网,但是如果电缆未连接到以太网,我肯定不想减慢系统的启动速度。我假设系统会自动知道这一点,并且不会尝试为接口获取 DHCP 租用。
这是我在加载时看到的(见最后三行):
在知道租约不会到来之后,它继续启动。
如果没有连接的电缆,有没有办法告诉它不要使用 DHCP?