我想在我的计算机中的 2 个不同主分区内安装 2 个完全独立的 Windows XP 实例(不应共享数据)。我知道 grub 可以正确引导它们,但我不知道是否可以在 100% NTFS 系统中安装和配置它,而无需任何额外的 linux 分区/分发。
我想在 CentOS 7 EC2 实例上禁用 transparent_hugepage (THP),默认情况下启用:
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
Run Code Online (Sandbox Code Playgroud)
可以手动更改此设置:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
Run Code Online (Sandbox Code Playgroud)
...但重新启动后更改将丢失。
我试图将echo never [...]指令放入我的rc.local和cloud.cfg文件中,但没有奏效。
我也试图追加设置transparent_hugepage=never到内核行/etc/grub.conf(如解释有),但它并没有更好地工作。
那么...如何在 AWS EC2 实例上运行的 CentOS 7 上禁用 THP?
编辑:更改标题...我需要禁用 THP和THP 碎片整理
我最近为我的 linux 服务器编译了一个新内核。它与之前的内核几乎相同(我添加了 cifs 支持)。由于对服务器的物理访问受到限制,我将 grub 配置为在新内核无法正常启动时回退到旧内核。我现在可以启动服务器,但我不知道哪个内核正在运行。
我尝试执行“uname -a”,它给了我内核名称,后跟 #2。#2 与我的问题有关吗?
如何找出两个可能的内核中的哪一个正在运行?理想情况下,我想将它与我的 grub.conf 中列出的顺序相关联
我刚刚用 mdadm 完成了一个 CentOS 6.3 64 位服务器的设置,但是一个灯泡亮了,我意识到 grub 只会安装在第一个驱动器上,这与摩托车上的烟灰缸一样多。
我看了一眼,证实了我的怀疑:
grub> find /grub/stage1
find /grub/stage1
(hd0,0)
Run Code Online (Sandbox Code Playgroud)
所以我更新了我的设备地图,看起来像:
(fd0) /dev/fd0
(hd0) /dev/sda
(hd1) /dev/sdb
Run Code Online (Sandbox Code Playgroud)
(注意(hd1)条目是我添加的
所以我尝试在 /dev/sdb 上安装 grub
我得到:
grub> root (hd1,0)
root (hd1,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd1)
setup (hd1)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... no
Error 15t: File not found
Run Code Online (Sandbox Code Playgroud)
所以我做了一些谷歌搜索(可悲的是谷歌刚刚做得很好,并挑选了 100 个在这里没有帮助的 grub 安装示例)
在找到一些线索后,我尝试了:
# grub-install --recheck /dev/sdb
Probing devices to guess BIOS drives. This may take …Run Code Online (Sandbox Code Playgroud) 我在运行 Debian wheezy 和 GRUB 1.99-27+deb7u3 的 4 x 1 TB 驱动器的服务器上遇到问题。
sda 和 sdb 具有使用(Linux 软件)RAID1 镜像的分区,包括/boot. sdc 和 sdd 各有一个分区,为数据镜像一个 LVM 物理卷。GRUB 安装到 sda 和 sdb。我用mdadm于--fail和--remove1个TB SDC,并取代了旧的驱动器(一个ST91000640NS)用新的2 TB ST2000NX0243。
安装新驱动器后,GRUB 可以达到
GRUB loading.
Welcome to GRUB!
Run Code Online (Sandbox Code Playgroud)
但无法显示菜单。sdc 上的驱动器指示灯持续亮起,因此推测 GRUB 核心正在尝试读取该驱动器,即使它不需要访问 /boot/grub。我试过两个相同型号的驱动器,都用 测试得很好smartctl,结果相同。在 sdc 驱动器托架为空的情况下,一切正常启动。系统从实时 USB 启动并且可以访问新驱动器,因此这不是硬件不兼容 (*)。我确定是 sdc 被删除了,并且没有迹象表明 BIOS 对驱动器进行了重新排序。
(*)这可能不是一个安全的假设。见答案。
所以我有以下相关问题:
grub rescue>提示?4K 问题是否也会阻止将驱动器用于 Linux RAID? …在stackoverflow中询问过这个问题,但他们建议我在这里发布:
这是我的情况:
我目前有一个可以启动 XP 的 Windows 驱动器。BIOS 不支持 PXE 启动,所以这是不可能的。因此,我想我可以在它上面安装一个自定义的 GRUB 引导加载程序,这样它就可以选择从连接到它的 DHCP 服务器上 PXE 引导映像,并可以选择像往常一样加载 Windows(菜单中的两个项目)。问题是它可能需要自动化(意味着没有键盘),所以有没有办法在 GRUB 加载期间运行脚本预引导,以确定 DHCP/TFTP 服务器是否正在运行并尝试从网络通过 PXE 引导映像(如果没有,说 10 秒超时,定期从 Windows 驱动器启动)?
如果这是不可能的,还有哪些其他选择/建议?我也在阅读 grub4dos,但我不确定这是我需要的。FWIW,我可以随意对驱动器做任何我想做的事情。我真的很感激这方面的一些帮助,因为我不确定从哪里开始。谢谢!
我想知道如何在没有配置基于 grub-pc ncurses 的对话框的情况下在 ubuntu 10.04 衍生发行版上更新 grub-pc。我曾尝试检查debconf-get-selections之前和之后的变化以及以下方面的变化:
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes -fuy install grub-pc
Run Code Online (Sandbox Code Playgroud)
以及设置 DEBIAN_FRONTEND:
export DEBIAN_FRONTEND=noninteractive
Run Code Online (Sandbox Code Playgroud)
一切都无济于事,我希望做的是保留配置文件的本地版本并在脚本中使用此代码进行离线安装。
我编辑了我的 linux 系统的 'grub.conf' 文件并更改了其中的 'timeout' 值并添加了一些其他行以解决 'xm console guest' 命令的超时问题。我愚蠢地假设 grub.conf 中的这个“超时”参数实际上与“xm 控制台超时”相关并将其更改为非常大的值。所以这让我遇到了一个大问题。现在,当我重新启动我的 linux 机器时,即使在手动选择要启动的内核后,它也只是挂在启动屏幕上。
所以基本上我想撤消我在启动或通过 grub 时在 grub.conf 文件中所做的更改。或者以某种方式强制系统启动一次,然后撤消更改。我做不到。一种方法是在救援模式下从 Linux CD 引导并撤消它,但我不能这样做,因为它是 XEN 上的虚拟机,我找不到从外部 CD 引导它的方法。
有什么办法可以解决我造成的混乱吗?
我们使用以下overlayroot.conf来运送配置了overlayroot的盒子:
overlayroot=device:dev=/dev/sda6,timeout=20,recurse=0
Run Code Online (Sandbox Code Playgroud)
这会产生以下安装配置:
$ mount
overlayroot on / type overlayfs (rw,errors=remount-ro)
/dev/sda5 on /media/root-ro type ext3 (ro,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered)
/dev/sda6 on /media/root-rw type ext3 (rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered)
/dev/sda1 on /boot type ext3 (rw)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,三个关键的物理分区:sda1是/boot,sda5是只读的“工厂”根目录,sda6是“用户”根目录,可以随时擦除以将机器恢复到原始出厂状态。
现在,当 update-grub 因任何原因运行时就会出现问题:
$ sudo update-grub
[sudo] password for administrator:
/usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).
Run Code Online (Sandbox Code Playgroud)
可以理解,因为/是一个overlayfs。
其内容为/usr/sbin/update-grub:
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
Run Code Online (Sandbox Code Playgroud)
作为/usr/sbin/grub-mkconfig事物的业务部分。但实际的问题是在 中/usr/sbin/grub-probe,由 grub-mkconfig 调用,并且grub-probe是一个二进制文件。
所以我的问题是,是否有一个参数或其他任何参数可以使 grub-probe 面对/成为一个overlayfs时做正确的事情?其次,有没有办法破解/修补它,以便 update-grub 脚本做正确的事情?
谢谢。
A server was recently transported from location A to B, a long journey that took six months. Things have gone wrong due to nothing being labeled prior to shipment. Yes, I know --- it was done by others, but I am paying the price.
I must salvage the data and need help!
The system booted fine previously, but now it won't boot (not even a grub rescue -- the BIOS simply does nothing, and I've tried selecting each individual member …