互联网上是否有资源,我可以在哪里下载我在 ubuntu 服务器安装中所需的单个文件?
在这种情况下,我需要一个适用于 Ubuntu 服务器 12.04 的干净版本/etc/grub.d/00_header
。有时,我希望获取适用于特定 Linux 版本的文件的干净版本。
除了在其他地方再次安装 ubuntu 并从那里复制文件之外,我该如何获取我需要的文件?
我做了一个尝试apt-get upgrade
,希望新版本的 grub 能够替换有问题的版本,但出现了这个错误。据我了解,更新后的 grub 应该会替换旧版本(我选择使用软件包维护者版本的 /etc/defualt/grub),因此解析后出现的错误与新版 grub 有关,而不是我的本地版本。这样对吗?
Replacing config file /etc/default/grub with new version
/usr/sbin/grub-setup: warn: Sector 32 is already in use by FlexNet; avoiding it. This software may cause boot or other problems in future. Please ask its authors not to store data in the boot track.
/usr/sbin/grub-setup: warn: Sector 33 is already in use by FlexNet; avoiding it. This software may cause boot or other problems in future. Please ask its authors not to store data in the boot track.
Installation finished. No error reported.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-29-generic-pae
Found initrd image: /boot/initrd.img-3.2.0-29-generic-pae
Found linux image: /boot/vmlinuz-3.2.0-25-generic-pae
Found initrd image: /boot/initrd.img-3.2.0-25-generic-pae
Found linux image: /boot/vmlinuz-3.2.0-23-generic-pae
Found initrd image: /boot/initrd.img-3.2.0-23-generic-pae
Found memtest86+ image: /boot/memtest86+.bin
error: syntax error.
error: Incorrect command.
error: syntax error.
error: line no: 32
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub/grub.cfg.new file attached.
done
答案1
虽然 @cjc 为包管理提供的一般文件提供了一种低级方法,但对于配置文件,还有一种更简洁的方法。这里的关键是选项,--force-confmiss
如答案中所述这个问题。
这是该文件的一个示例/etc/dnsmasq.conf
。
确定其所属的二进制包
例如运行/etc/dnsmasq.conf
# dpkg -S /etc/dnsmasq.conf
dnsmasq: /etc/dnsmasq.conf
这意味着您必须获取该dnsmasq
包裹。
下载正确的 .deb 包
例如:
$ aptitude download dnsmasq
Get:1 http://ftp.nl.debian.org/debian/ squeeze/main dnsmasq all 2.55-2 [14.2 kB]
Fetched 14.2 kB in 0s (190 kB/s)
$ ls
dnsmasq_2.55-2_all.deb
让 dpkg 替换你想要的文件
首先删除需要重置为默认值的文件。
# rm /etc/dnsmasq.conf
# dpkg -i --force-confmiss dnsmasq_2.55-2_all.deb
答案2
获取该文件的 deb 文件。它在grub-common
包中。获取后,您可以运行dpkg-deb
以提取包。
因此,类似于:
$ wget http://us.archive.ubuntu.com/ubuntu/pool/main/g/grub2/grub-common_1.99-22ubuntu2_i386.deb`
$ mkdir tmp
$ dpkg-deb -x grub-common_1.99-22ubuntu2_i386.deb ./tmp
$ ls tmp/etc/grub.d/
00_header 10_linux 30_os-prober 41_custom
05_debian_theme 20_linux_xen 40_custom README