您的位置:首页 > 运维架构 > Docker

Docker制作私有的基础镜像

2017-10-18 16:36 961 查看
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.

即表示成功。如果看到


或卡在


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的使用 | 迟思堂工作室

【上一篇】Linux网络转发和端口映射的笔记
【下一篇】Linux内存带宽的一些测试笔记

你可能感兴趣的文章

ubuntu系统debootstrap的使用之二:启动

遇到一个Linux文件系统因bios时间错误变成只读的问题

Ubuntu定制live cd

linux之行(4):上手

linux下时区的一些认识

Linux下小型web服务器boa的使用

Linux下doxygen的使用

让ubuntu开机快一点:记开机出现Waiting for network configuration…

Ubuntu日志的一些笔记

minicom的使用

linux时区的几个代码片段

Linux使用tcpdump抓获取WIFI包

目前暂无评论

发表评论



昵称 *

邮箱 *

网址







验证码*

快捷键:Ctrl+Enter

致谢

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

公告

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

近期文章

嵌入式Linux入门4:版本控制git的使用

嵌入式Linux入门3:Linux服务器搭建

嵌入式Linux入门2:工具掌握(Windows篇)

嵌入式Linux入门:概述

Python实现阳历转农历功能

使用python实现GBK转unicode码查询表

python实现解析oui.txt并抽取MAC前缀及组织名称

Linux内核小笔记:spin_lock锁内不能使用sleep休眠

我的内核学习笔记13:x86平台linux系统重启流程跟踪

我的2016年个人总结

热门文章

Linux查看CPU型号及内存频率及其它信息的命令( 50,795)

ld命令( 44,643)

在Ubuntu 14.04平台上利用Intel的GPU实现硬件加速--基于VAAPI( 43,876)

ubuntu系统debootstrap的使用之二:启动( 41,558)

Linux系统网络设备启动和禁止“ifconfig eth0 up/down”命令的跟踪( 39,570)

嵌入式之行(4):我的emacs(下)( 39,370)

u-boot移植随笔(7):u-boot启动流程简图( 38,950)

s3c2410多通道adc驱动及测试程序( 38,701)

crosstool-ng构建的一个错误的解决( 38,663)

填充颜色彩条( 37,198)

热评文章

我的2016年个人总结(0)

我的内核学习笔记13:x86平台linux系统重启流程跟踪(0)

Linux内核小笔记:spin_lock锁内不能使用sleep休眠(0)

使用python实现GBK转unicode码查询表(0)

python实现解析oui.txt并抽取MAC前缀及组织名称(0)

Python实现阳历转农历功能(0)

嵌入式Linux入门:概述(0)

嵌入式Linux入门2:工具掌握(Windows篇)(0)

嵌入式Linux入门3:Linux服务器搭建(0)

嵌入式Linux入门4:版本控制git的使用(0)

分类目录

GNU/Linux程序 (40)

GNU/Linux系统 (65)

Linux内核研究 (9)

python (3)

U-Boot随笔 (18)

Windows程序 (19)

业余研究 (31)

代码生活 (26)

小玩意 (2)

嵌入式Linux (60)

嵌入式底层BIOS (19)

开源项目 (6)

我的大学生活 (17)

我的研究 (9)

我的程序代码 (24)

无线WIFI (7)

流媒体学习 (21)

生活掠影 (29)

缥缈心路 (4)

网络/网站/web (5)

网络方面 (17)

诗词掠影 (6)

读书笔记 (1)

文章归档

2017年七月 (3)

2017年六月 (1)

2017年二月 (1)

2017年一月 (5)

2016年十二月 (8)

2016年十一月 (4)

2016年十月 (11)

2016年九月 (5)

2016年八月 (6)

2016年七月 (5)

2016年六月 (6)

2016年五月 (4)

2016年四月 (9)

2016年三月 (12)

2016年二月 (7)

2016年一月 (6)

2015年十二月 (11)

2015年十一月 (2)

2015年十月 (6)

2015年九月 (9)

2015年八月 (19)

2015年七月 (6)

2015年六月 (6)

2015年五月 (5)

2015年四月 (7)

2015年三月 (7)

2015年二月 (8)

2015年一月 (9)

2014年十二月 (5)

2014年十一月 (8)

2014年十月 (5)

2014年九月 (46)

2014年八月 (120)

最新评论


Paulaidoni:
Пополение бал


MichaelSpugs:


新手:
大神能把抓包代码发我邮箱研究一下


kangear:
对分析H265很有帮助。你们领导


JohnnieHiplE:
заказное письмо


flybit:
你好,想问下出现新版本出现:


wang:
Makefile编译总是错误,M


李雷:
小伙子,WiFi挺6666


xtzt:
能否交个朋友?


xtzt:
十分感谢!!!

标签云集

Linux移植随笔YUVUBoot随笔libjpegLinux之行LinuxgccgitflashYUV播放器ffmpegramstage点阵字符Linux驱动嵌入式之行心路tslibWindowsiptables编程个人总结代码积累大学生活H264码流onvifubuntucorebootGBKMakefile内核学习ARM版本控制

博客统计

日志总数:372 篇

评论总数:723 篇

标签数量:269 个

链接总数:1 个

建站日期:2014-8-30

运行天数:1145 天

最后更新:2017-9-14
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: