定制修复盘:LFS之路

很多时候我们不得不从LiveCD修复系统,在过程的某个时刻,我们发现自己缺少工具,当我们想要安装它时,LiveCD OS告诉我们它已经用完了空间,大蒜和水(滚开并坚持下去)。

由于进入LFS(从零开始),这是安装自定义Linux的指南(不是发行版本身)。 这种“分发”的意义在于,可以从任何LiveCD中使用适当的工具下载内核代码和其他工具来构建自己的系统(一点一点地编译所有内容)。 如果要遵循循序渐进的指南,则需要多个工具和编译器,并且没有所有功能的liveCD,因此必须自定义一个。

我们开始做吧。 我们将使用 SystemRescueCD,它提供了一个相当全面的基于Gentoo的环境。

在我们的示例中(按照Linux From Scratch的书从头开始安装Linux),我们缺少Bison和Makeinfo程序,因此我们将使用新工具创建该磁盘的新ISO映像。

注意:Gentoo是可以编译的发行版 原位 所有要安装的软件包,因此添加和更新程序的过程很慢。

尽管使用了软件包管理器(例如Debian的apt-get),但不是下载软件包,而是下载源代码以在您的计算机上编译它。

对于此过程,您将需要至少有4G可用空间的Linux分区(例如ext1.5),尽管建议使用更多空间。 如果您不想摆弄分区,请使用虚拟机。 当然,建议该分区有几个演出,因为在编译,安装,存储库同步期间……需要临时空间; 我建议使用8G + 2G交换分区(对于4G + 1G应该足够了,但是我们可以向您保证,如果缺少RAM /交换,则过程会更加缓慢)。

假设您创建了一个具有10G磁盘的虚拟机,则通过告诉该虚拟机从新下载的SystemRescueCd进行启动来启动该虚拟机。 一旦进入内部,我们将使用fdisk进行分区(如果您已经开始了图形化会话,则可以使用gparted进行此操作,但是本文的目的是教授基本工具的用法)。 fdisk是一个交互式命令:

  • 使用选项“ n”,我们创建一个新分区
  • 使用选项“ t”,我们更改将在分区中使用的文件系统的类型
  • 使用选项“ w”,我们写入磁盘
  • 使用选项“ q”,我们不写更改就离开

当我们使用“ n”选项时,它将一直为我们提供默认情况下的所有选项,除了在第一个分区中设置最后一个扇区时,我们将必须写入“ + 8G”,从而向程序表明我们需要我们的分区占用8GB。

创建第二个分区时,我们将使用默认选项,因为其余空间将被占用。 另外,要告诉fdisk第二个分区将是swap类型,请使用“ t”选项(交换的十六进制为82)。 界面如下所示:

%fdisk / dev / sda命令(m以获取帮助):

完成所有操作后,我们使用“ w”选项将更改写入磁盘并退出。
现在是时候格式化分区了。 我们将从交换开始,以便立即使用它:

%mkswap / dev / sda2%swapon / dev / sda2

我们已经格式化了交换分区,并使用以下命令 交换 我们已经开始使用它。 现在我们在ext4中格式化第一个分区:

% mkfs.ext4 /dev/sda1

我们可以开始遵循 http://www.sysresccd.org/Sysresccd-manual-en_How_to_personalize_SystemRescueCd,这里我用奇数注释翻译/描述它们。

我们将分区安装到位(LiveCD已经准备好了一个文件夹/ mnt / custom,必须在其中安装要进行适当更改的分区)。 同样,在挂载之后,我们将不得不从磁盘中提取文件,这是通过已经准备好的脚本来实现的。 该脚本将花费一些时间(因为它会转储数百兆的内存),如果您想检查脚本是否确实在工作,请转到另一个终端(例如,使用Alt + F4)并执行 df -h.

%mount / dev / sda2 / mnt / custom%/ usr / sbin / sysresccd-custom解压缩

如果现在在 / mnt /定制/ customcd,您将看到几个文件夹。 在 / mnt / custom / customcd /文件 找到根文件系统。 现在是时候更改未来的新系统了。 在这里,我将放置命令,有关chroot的更多信息,请参见 我一个月前写的本教程

%mount -o bind / proc / mnt /定制/ customcd /文件/ proc%mount -o bind / dev / mnt /定制/ customcd /文件/ dev%mount -o bind / sys / mnt / custom / customcd /文件/ sys%chroot / mnt /自定义/ customcd /文件/ bin / bash#gcc-config $(gcc-config -c)

我们已经在chroot系统中,一旦启动它便是LiveCD系统。 我们将使用以下命令安装缺少的软件包(bison和texinfo) 出现 (由谁来处理 搬运 来自gentoo)。

首先,我们同步portage树(相当于 APT-get的更新)
# emerge-webrsync 注意:我们使用此命令而不是“ emerge –sync”,因为它更快,因为它可以从Web下载tar包。 这一步是必要的,因为如果您不出现,它将自动出现–sync,从而使其变慢。

同步portage树之后,我们可以继续安装软件包:

#出现sys-devel /野牛#出现sys-devel / texinfo
野牛需要一段时间才能编译,要耐心

我们离开chroot:# exit

我们卸载“ / proc”,以便将新安装的软件包存储在squashfs中。 我们还卸载了“ / dev”和“ / sys”,以便以后不要忘记
% umount /mnt/custom/customcd/files/proc
% umount /mnt/custom/customcd/files/dev
% umount /mnt/custom/customcd/files/sys

由于我们已经准备好了新的南瓜文件系统,因此可以使用以下命令创建它
% /usr/sbin/sysresccd-custom squashfs
如果要在ISO映像中添加文件,但希望将其放置在squashfs之外,则必须将其放入文件夹«/ mnt / custom / customcd / isoroot»

% cp -a my-files /mnt/custom/customcd/isoroot

此时,官方指南告诉您可以将键映射设置为使用默认键盘启动(例如,西班牙语键盘为“ es”)。 但是进行几次测试后,它们为我使用的脚本无法正常工作,并且在加载内核时导致错误,因此我将跳过此步骤。

辉煌的时刻已经到来,我们现在可以使用我们的定制系统生成新的ISO映像!
% /usr/sbin/sysresccd-custom isogen my_srcd
“ My_srcd”是我们为该卷命名的名称,您可以随意命名。 图像保存在«/ mnt / custom / customcd / isofile»中,此外还会生成一个.md5文件🙂

如果您使用的是虚拟磁盘,那么关键步骤仍然是:提取虚拟系统的ISO映像。 有几种方法可以做到,我将解释一种简单的方法(在VirtualBox中),以避免必须安装“来宾添加”或类似的方法。
我们将使用客户端通过ssh隧道获取文件。 为此,我们必须首先使用根密码配置来宾系统。 ssh服务器会自动启动,为了以防万一,我们仍然会重新启动它。
% passwd
% /etc/init.d/sshd restart

我们必须配置虚拟机的端口转发。 在VirtualBox中,其操作如下:

  1. 您访问虚拟机配置
  2. 在网络部分,您已经在NAT中配置了适配器
  3. 寻找端口转发选项
  4. 您添加一个新规则,其唯一参数为“主机端口”和“来宾端口”
  5. 主机= 3022和来宾= 22

这样,我们已经实现了PC的端口3022是虚拟机的22。 我们启动Filezilla客户端:

  1. 在服务器参数中,我们写:sftp://本地主机
  2. 在username参数中,我们写:root
  3. 在密码参数中,我们将在“ passwd”中使用的密码
  4. 在端口参数中,我们写:3022
  5. 点击«快速连接»

如果一切顺利,我们可以在PC上导航到虚拟机中的右边。 只需访问(在虚拟机中)文件夹«/ mnt / custom / customcd / isofile»并将ISO映像拖到PC上所需的位置即可。

恭喜! 如果一切顺利,则可以使用自定义的SystemRescueCD准备好ISO映像,并准备从CD,USB引导...


3条评论,留下您的评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   狮子座

    很好的指南,有点复杂,但非常有用。
    贡献良多。

  2.   麻风病人

    然后,再多一点时间,并且眼睛没有太多不适,我将彻底阅读它。 看起来非常有用和有趣。

  3.   卡洛斯·桑切斯(Carlos Sanchez)

    您好woqer,非常好的帖子!

    我已经在LFS工作了几年,并且创建了自己的iso可以为您服务,因为它是LFS,它具有您需要编译的所有内容。 😀我希望对您有用

    http://vegnux.org.ve/files/isos/neonatox-06.2rc6.linux-i686-xfce4.iso