debootstrap是debian/ubuntu下的一个工具,用来构建一套基本的系统(根文件系统)。生成的目录符合Linux文件系统标准(FHS),即包含了/boot、/etc、/bin、/usr等等目录,但它比发行版本的Linux体积小很多,当然功能也没那么强大,因此,只能说是“基本的系统”。

fedora下(centos亦可用)有类似功能的工具:febootstrap。观察这两个工具名称,可以看到debootstrap使用debian前缀“de”,而febootstrap使用fedora前缀“fe”,bootstrap含义为“引导”,并如果做过LFS的话,对它了解会比较多,而在编译gcc编译器时也有涉及到这个概念。不过debootstrap或febootstrap似乎没有表达出“引导”的意思。

制作根文件系统,在PC上最全面的莫过于LFS(linux form scratch,从头做一个linux系统),而嵌入式中,busybox是不二之选。当然,随着芯片的强大及一些linux发行版本的进化,也有桌面系统直接用于嵌入式领域中,比如ubuntu,就有支持硬件浮点的工具直接下载。

ubuntu默认没有安装debootstrap,安装十分简单,执行下列命令即可:

 sudo apt-get install debootstrap

  使用也十分简单,命令格式为:

sudo debootstrap --arch [平台] [发行版本代号] [目录]

  

sudo debootstrap --arch [平台] [发行版本代号] [目录]

比如下面的命令

sudo debootstrap --arch i386 trusty /mnt

即是构建x86(32位)平台ubuntu最新发行版14.04(代号为trusty)的基本系统,存放到/mnt目录下。

当前debootstrap支持的发行版本可以在/usr/share/debootstrap/scripts查看,而各发行版代号,可以到http://en.wikipedia.org/wiki/List_of_Ubuntu_releases查看。比如gutsy是7.10的代号,precise是12.04的代号,等等。

输入上述命令后,就会从网络下载相关的文件,当看到

I: Configuring python-central...
I: Configuring ubuntu-minimal...
I: Configuring libc-bin...
I: Configuring initramfs-tools...
I: Base system installed successfully.

即表示成功。如果看到

E: Failed getting release file http://archive.ubuntu.com/ubuntu/dists/trusty/Release

或卡在

I: Retrieving Release

则可能是网络原因。

下载的文件在/mnt/var下,如:

$ tree
.
├── debootstrap
│ ├── debootstrap.log
│ └── debpaths
└── var
├── cache
│ └── apt
│ └── archives
│ ├── adduser_3.113+nmu3ubuntu3_all.deb
│ ├── apt_1.0.1ubuntu2_i386.deb

其中adduser_3.113是14.04对应的adduser。从这里也可以确认其下载的是哪一发行版的软件。

下面使用chroot进入/mnt目录,并查看linux版本。

latelee@ubuntu:~$ cd /mnt/
latelee@ubuntu: /mnt$ ls
bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
latelee@ubuntu: /mnt$ sudo -s
[sudo] password for latelee:
root@ubuntu: /mnt# chroot .
root@ubuntu:/# ls
bin boot dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
root@ubuntu:/# cat etc/issue
Ubuntu 14.04 LTS \n \l
root@ubuntu:/# ls /proc/ -l
total 0
root@ubuntu:/# ifconfig
Warning: cannot open /proc/net/dev (No such file or directory). Limited output.
root@ubuntu:/# uname -a
Linux ubuntu 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 i686 i686 GNU/Linux

因为当然系统使用的并不这个新的系统,因此/proc并没有内容,而内核依然是当前系统所用的版本。

使用光盘不成功

W: Failure trying to run: chroot /home/latelee/test_sys mount -t proc proc /proc
W: See /home/latelee/test_sys/debootstrap/debootstrap.log for details

注:

本文并没有过多技术含量,仅是在学习过程中碰见了debootstrap而写点笔记。本文所用环境均是虚拟机vmware。

附录:

未完事宜:

限于时间,目前还没有实际启动新的系统。

一些涉及到ubuntu根文件系统构建的资源:

http://www.virtuatopia.com/index.php/Building_a_Debian_or_Ubuntu_Xen_Guest_Root_Filesystem_using_debootstrap

https://wiki.ubuntu.com/DebootstrapChroot

https://help.ubuntu.com/10.04/installation-guide/i386/linux-upgrade.html

http://www.thegeekstuff.com/2010/01/debootstrap-minimal-debian-ubuntu-installation/

http://askubuntu.com/questions/442610/debootstrap-warning-during-installation-12-04-lts-server-vmware-virtual-mach

https://help.ubuntu.com/lts/installation-guide/i386/index.html

查看ubuntu各发行版本wiki:

http://en.wikipedia.org/wiki/List_of_Ubuntu_releases

查看ubuntu安装包:

http://packages.ubuntu.com/

后记:本想写稍有点技术含量的文章,把过程所涉及到的知识点都提及,但发现自己文笔不复如前,还是按流水账那样写出来比较畅快些。

李迟,写于2014年10月20日中午休息前

近来经济拮据,如本文对阁下有帮助,可慷慨解囊赞助笔者以输出更多好文章。 
支付宝readchy@163 或 微信fly_camel_fly 均可。感谢!
                                  

本文固定链接: http://www.latelee.org/using-gnu-linux/ubuntu-debootstrap.html

如无特别说明,迟思堂工作室文章均为原创,转载请注明: ubuntu系统debootstrap的使用 | 迟思堂工作室

目前暂无评论

发表评论

昵称 *

邮箱 *

网址

 

 验证码*

快捷键:Ctrl+Enter

 

致谢

感谢曾经帮助过我的朋友!
让我在黑暗到看到一线曙光;
在寒冷中感到一丝温暖。
愿你们健康快乐!万事顺利!
老大、木木、小桂子、小郭、小蟹、老尧,识得你们是莫大的荣幸!

公告

有些事非人力所能控制,为生活奔波惫命,可能无法及时看到留言。
但会在能力范围内为各位解答(直接要代码/答案的可免)。
初心不变,我还是我。
——李迟

近期文章

热门文章

热评文章

 

分类目录

文章归档

 
 

博客统计

  • 日志总数:372 篇
  • 评论总数:723 篇
  • 标签数量:269 个
  • 链接总数:1 个
  • 建站日期:2014-8-30
  • 运行天数:1145 天
  • 最后更新:2017-9-14
 
 

Docker制作私有的基础镜像的更多相关文章

  1. docker镜像制作---jdk7+tomcat7基础镜像

    1. 安装docker rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm y ...

  2. docker中如何制作自己的基础镜像

    一.本地镜像 举个例子:现在把自己的开发环境打包,取名为centos6-base.tar,然后在docker中,以centos6-base.tar作为基准镜像. 1.创建自己的镜像,放置于/root目 ...

  3. docker学习系列-jdk基础镜像制作

    准备一台安装有docker服务的机器 1.编辑Dockerfile   vim Dockerfile FROM centos:latest ADD ./jdk-8u141-linux-x64.tar. ...

  4. 使用Dockerfile文件制作centos6.8基础镜像,基于centos基础镜像的ssh远程登录镜像,jdk1.8镜像,tomcat镜像,elasticsearch镜像等等

    一.首先制作一个centos6.8的裸机镜像 创建一个干净的目录: [root@docker centos6.]# ls c68-docker.tar.xz Dockerfile Dockerfile ...

  5. 还在用Alpine作为你Docker的Python开发基础镜像?其实Ubuntu更好一点

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_173 一般情况下,当你想为你的Python开发环境选择一个基础镜像时,大多数人都会选择Alpine,为什么?因为它太小了,仅仅只有 ...

  6. docker制作cenos+php56+nginx镜像

    首先你环境要安装好docker 1 获取centos镜像. docker search centos 选取第一个官方镜像. docker pull  docker.io/centos 新建镜像挂载目录 ...

  7. [Docker] 制作并运行 Nginx 镜像

    环境 操作系统(cat /etc/redhat-release):CentOS Linux release 7.6.1810 (Core) Docker:18.09.6 文件 Dockerfile F ...

  8. Docker制作基础镜像

    Docker镜像制作 方式一:手动运行一个容器,做好所有配置,然后把容器提交成一个镜像 方式二:使用DockerFile 示例1:做一个yum安装的nginx镜像 - 运行并进入一个centos容器: ...

  9. linux 创建docker基础镜像

    通过Dockerfile创建镜像时,一般都是基于 Docker Hub 提供的官方镜像.以下分别介绍在ubuntu16和centos7 两个系统上创建个人私有基础镜像的方法.  一.ubuntu16创 ...

随机推荐

  1. Linux安装rpc监控系统资源

    1.rpc服务需rsh的支持,一般情况下rsh已安装.rpm -qa rsh查看. 2.右键另存为http://heanet.dl.sourceforge.net/sourceforge/rstatd ...

  2. SQL2005数据库置疑处理

    2005中遇到置疑.丢失日志时按照网上常见的MSSQL2000修复方法来做, 结果发现行不通,甚至连一步都做不下去.其实,在MSSQL2005在处理置疑问题的思 路与MSSQL2000是一致的,但具体 ...

  3. PyQt环境配置

    1.下载python 登录Python官网,目前最新的版本是3.6.3,网址为:https://www.python.org/downloads/release/python-363/ 选中Windo ...

  4. zookeeper安装和dubbo-admin使用

    简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提 ...

  5. 【12-06】A股主要指数的市盈率(PE)估值高度

    全指材料(SH000987) - 2018-12-06日,当前值:12.043,平均值:30.37,中位数:26.0097,当前 接近历史新低.全指材料(SH000987)的历史市盈率PE详情 中证煤 ...

  6. Metropolis-Hastings算法

    (学习这部分内容大约需要1.5小时) 摘要 马尔科夫链蒙特卡洛(Markov chain Monte Carlo, MCMC)是一种近似采样算法, 它通过定义稳态分布为 \(p\) 的马尔科夫链, 在 ...

  7. Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  8. ios的AutoresizingMask【转】

    在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高. enum {   UIViewAutoresi ...

  9. windows本地hash值获取和破解详解

    powershell版的procdump https://www.t00ls.net/articles-48428.html procdump procdump是微软官方提供的一个小工具, 微软官方下 ...

  10. flask操作mongo两种方式--常规

    #manage.py #coding=utf-8 #Flask-Script是一个可以在flask应用外部编写脚本的扩展 #常用功能: #运行一个开发的服务器 #python shell中操作数据库看 ...