debootstrap构建自己的debian系统

C.4. 通过 Unix/Linux 系统来安装 Debian GNU/Linux
本节说明了如何通过现有的 Unix 或 Linux 系统来安装 Debian GNU/Linux,而非使用本手册后面要谈到的由菜单驱动的安装软件。这篇“交叉安装(cross-install)” HOWTO 是应用户的要求而撰写的。他们原来是 Redhat、Mandrake 和 SUSE 的用户,现转而使用 Debian GNU/Linux。在本节中,我们假设您对于输入 *nix 命令以及在文件系统中穿梭移动并不生疏。同时,在本节中,$ 标志着这个命令是在用户当前使用的系统中输入的,而 # 则表示这个命令是在 Debian chroot 环境中输入的。 
您一旦根据自己的要求配置好了新的 Debian 系统,就可以将您的原来系统中的用户数据(如果有的话)悉数迁移到 Debian 里去。然后就能继续爽了。一言以蔽之,这是一次“不停机”的 Debian GNU/Linux 安装。同时,这也是处理那些因为硬件原因不能通过任何引导或者安装介质完成安装的权宜之计。 
C.4.1. 准备运动
根据需要,用已经安装的 *nix 的分区工具重新分区,要划分出至少一个文件系统外加交换分区。您如果只用控制台(console)的话,至少要准备 150MB 空间,倘若想要装 X,就需要至少 300MB 的空间了。 
这里谈一下如何在您的分区上创建文件系统。举例来说,如果要在 /dev/hda6 分区(以后的例子中,将把它作为 root 分区) 建立一个 ext3 格式的文件系统,就像这样: 
# mke2fs -j /dev/hda6
如果想建立的是 ext2 格式的文件系统,就要去掉 -j。 
初始化并激活交换分区(请把分区编号替换成您希望用作交换分区的分区编号): 
# mkswap /dev/hda5
# sync; sync; sync
# swapon /dev/hda5
把一个分区挂载(mount)到 /mnt/debinst(这是安装的位置,将来作为您新系统的根(/)文件系统)。挂载点的名称是任意的,后面的步骤将会用到它。 
# mkdir /mnt/debinst
# mount /dev/hda6 /mnt/debinst
注意
如果您打算将部分文件系统(例如,/usr)放到独立的分区,在进入下一阶段之前,需要手动创建和加载这些目录。 
C.4.2. 安装 debootstrap
Debian 安装程序调用的软件,同时也为官方所采用,被用来安装基系统的工具是 debootstrap。它调用了 wget 和 ar,否则就仅仅依赖 /bin/sh。安装 wget 和 ar 如果您的系统里没有,然后再下载并安装 debootstrap。 
如果您用的是基于 rpm 的系统,那么可以用 alien 将 .deb 文件转换成为 .rpm 文件,或者下载已被打包成 rpm 包的版本,它位于 
http://people.debian.org/~blade/install/debootstrap

或者您也可以通过下面的步骤手动安装它。先新建一个工作目录,它被用来安放解压缩后的 .deb 文件: 
# mkdir work
# cd work
debootstrap 的二进制文件被打包在 Debian 的归档文件中(请确保选择了与您架构相对应的文件)。下载 debootstrap .deb 它位于 
pool
,把它拷贝到工作目录,并从该文件解压缩出这些二进制文件。要把二进制文件安装到系统中,您必须要拥有 root 的权限。 
# ar -x debootstrap_0.X.X_arch.deb
# cd /
# zcat /full-path-to-work/work/data.tar.gz | tar xv
注意,运行 debootstrap 可能需要您有最小版本的 glibc (当前为 GLIBC_2.3)。 debootstrap 本身是一个 shell 脚本,但它会调用 glibc 的一下工具。 
C.4.3. 运行 debootstrap
debootstrap 执行后,它会自己从归档文件库直接下载所需的文件。您可以把下面的命令行例子中的 http.us.debian.org/debian 替换成任何一个 Debian 归档文件库的镜像。选择镜像时,可以根据您的网络情况选择较近的一个。镜像的列表在 
http://www.debian.org/misc/README.mirrors
。 
如果您已经把一张 sarge 版本的 Debian GNU/Linux CD 挂载在了 /cdrom 那么也可以把 http URL 替换成 file URL,即:file:/cdrom/debian/ 
请将下列架构中的一个替换 ARCH 于 debootstrap 命令中: alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s3Array0,或 sparc。 
# /usr/sbin/debootstrap --arch ARCH sarge \\
     /mnt/debinst http://http.us.debian.org/debian
C.4.4. 基系统的配置
现在您在硬盘上已经装上了一套真正的 Debian 操作系统,尽管它还很瘦小。Chroot 用来进入该系统: 
# LANG= chroot /mnt/debinst /bin/bash
C.4.4.1. 分区的挂载
您需要新建 /etc/fstab。
# editor /etc/fstab
这里有个样板,您不妨根据自己的情况来修改它: 
# /etc/fstab: static file system information.
#
# file system    mount point   type    options                  dump pass
/dev/XXX         /             ext3    defaults                 0    1
/dev/XXX         /boot         ext3    ro,nosuid,nodev          0    2
/dev/XXX         none          swap    sw                       0    0
proc             /proc         proc    defaults                 0    0
/dev/fd0         /mnt/floppy   auto    noauto,rw,sync,user,exec 0    0
/dev/cdrom       /mnt/cdrom    isoArray660 noauto,ro,user,exec      0    0
/dev/XXX         /tmp          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /var          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /usr          ext3    rw,nodev                 0    2
/dev/XXX         /home         ext3    rw,nosuid,nodev          0    2
您可以通过 mount -a 来挂载您的 /etc/fstab 中所标明的所有文件系统,您也可以一个一个地分别挂载这些文件系统,像: 
# mount /path   # e.g.: mount /usr
您可以多次挂载 proc 文件系统。尽管通常把它挂载到 /proc,但是它还是可以被挂载到任意的地方。如果您没有用 mount -a,那么请一定要再接着做之前先把 proc 挂载好: 
# mount -t proc proc /proc
ls /proc 命令现在应该列出非空目录。如果失败,您应该从 chroot: 以为加载 proc。 
# mount -t proc proc /mnt/debinst/proc
C.4.4.2. 键盘的配置
若要配置您的键盘,请: 
# dpkg-reconfigure console-data
注意,在 chroot 里面不能设置键盘,但重新启动以后可以。 
C.4.4.3. 网络的配置
要配置网络,请修改 /etc/network/interfaces, /etc/resolv.conf 和 /etc/hostname。
# editor /etc/network/interfaces
这里有些简单的例子,来自 /usr/share/doc/ifupdown/examples: 
######################################################################
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# See the interfaces(5) manpage for information on what options are
# available.
######################################################################
# We always want the loopback interface.
#
auto lo
iface lo inet loopback
# To use dhcp:
#
# auto eth0
# iface eth0 inet dhcp
# An example static IP setup: (broadcast and gateway are optional)
#
# auto eth0
# iface eth0 inet static
#     address 1Array2.168.0.42
#     network 1Array2.168.0.0
#     netmask 255.255.255.0
#     broadcast 1Array2.168.0.255
#     gateway 1Array2.168.0.1
填入您的 nameserver(s) 和搜索指令到 /etc/resolv.conf: 
# editor /etc/resolv.conf
这里有个简单的 /etc/resolv.conf: 
search hqdom.local\000
nameserver 10.1.1.36
nameserver 1Array2.168.Array.100
输入您的系统的主机名 (2 到 63 个字符): 
# echo DebianHostName > /etc/hostname
如果您有多块网卡,在您修改 /etc/modules 文件时,一定要按照期望的顺序排列驱动模块的名字。这样的话,在系统启动时,每块网卡就能获得您所预期的 interface 名称了 (eth0、eth1 等等)。 
C.4.4.4. 时区、用户和 APT 的配置
设置您的时区,添加一个普通用户,再运行下面的指令选择您的 apt 源 
# /usr/sbin/base-config new
C.4.4.5. locales 的设置
要配置您的 locale 设定,以便使用英语以外的其它语言,就需要安装 提供 locales 支持的软件包,同时配置之: 
# apt-get install locales
# dpkg-reconfigure locales
注意:在此之前必须配置好 apt,即在 base-config 阶段就配置好它。在使用非 ASCII 或 latin1 的字符集的 locale 之前,请先参阅相应的本地化指南(localisation HOWTO)。 
C.4.5. 内核的安装
您若想启动这个系统,您很可能还需要一个 Linux 内核和一个 boot loader。可以用下面指令找到那些目前可用的被打好包的内核 
# apt-cache search kernel-image
接下来把您所选中的内核的软件包名作为命令行的参数来安装它。 
# apt-get install kernel-image-2.X.X-arch-etc
C.4.6. Boot Loader 的设置
要让您的 Debian GNU/Linux 系统能够启动,还要设置您的 boot
loader,好让它能加载已安装的内核并用上新的根分区。注意 debootstrap 不会安装 boot loader,因此您要在
Debian 的 chroot 中使用 apt-get 完成。 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Debian构建嵌入式系统,您可以遵循以下步骤: 1. 安装Debian:首先,您需要在目标硬件上安装Debian操作系统。您可以从Debian官方网站下载适用于您的硬件平台的适当版本。 2. 交叉编译工具链:您需要使用交叉编译工具链来为目标平台生成可执行文件。这些工具链包括交叉编译器、库和其他必要的工具。您可以从交叉编译工具链供应商或开源项目中获取适用于您的目标平台的工具链。 3. 构建根文件系统:根文件系统是一个包含操作系统核心、库和文件的目录结构。您可以使用Debian的Debootstrap工具或Buildroot工具从头开始构建根文件系统。这些工具将帮助您安装所需的软件包,并设置文件系统。 4. 配置内核:为了支持您的嵌入式硬件,您需要配置和编译适当的内核。您可以使用Debian提供的内核包或自定义内核配置。根据您的需求,您可能需要启用或禁用特定的内核模块和功能。 5. 引导加载程序:您需要为嵌入式系统选择合适的引导加载程序。这个引导加载程序将在启动时加载内核和根文件系统。具体的引导加载程序取决于您的硬件平台,常见的引导加载程序包括U-Boot和GRUB。 6. 构建和部署:一旦您完成了以上步骤,您可以使用交叉编译工具链编译和构建您的应用程序。然后将生成的可执行文件和必要的库文件复制到嵌入式设备上的适当位置。 这只是一个基本的概述,实际的过程可能因具体的嵌入式平台和需求而有所不同。在开始之前,请确保详细阅读并理解与您的硬件和软件相关的文档和指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值