当前位置: 首页 > news >正文

国外网站模板网站建设公司做网站需要准备什么材料

国外网站模板网站建设,公司做网站需要准备什么材料,酒店网络推广方案,交通建设集团网站转自#xff1a;http://m.zol.com.cn/article/1271270.html?viaindexLinux内存初始化技术(initrd)用于支持两阶段的系统引导过程#xff0c;是在系统启动过程中被挂载的临时root文件系统(译者注#xff1a;这里的root文件系统是指的根文件系统)。initrd包含很多可执行程序和…转自http://m.zol.com.cn/article/1271270.html?viaindexLinux内存初始化技术(initrd)用于支持两阶段的系统引导过程是在系统启动过程中被挂载的临时root文件系统(译者注这里的root文件系统是指的根文件系统)。initrd包含很多可执行程序和驱动并允许在临时的内存磁盘根文件系统被卸载内存被释放后挂载真实的root文件系统。在许多嵌入式linux文件系统中initrd是最终的根文件系统。这篇文章主要讲解了linux2.6内核的initrd技术包括在内核中的创建及使用。1 什么是内存磁盘初始化0initrd挂载优先级高于真实根文件系统它被邦定在内核上做为内核启动过程的一部分被加载(load)。然后做为两阶段引导过程的第一部分内核挂载(mount)initrd用于获得并加载真实有效的文件系统。为了达到这个目的initrd包含有最起码的目录与程序例如insmod来安装内核模块到内核中。对于桌面或服务器linuxinitrd是临时文件系统它的生存周期很短仅仅是做为到达真实根文件系统的桥梁。但对于没有存储设备的嵌入式系统来说它才是永久性的根文件系统。本篇文章对这两方面均有涉及。2 深入分析initrdLinitrd包含有必须的程序和系统文件用于支持系统的启动的第二阶段过程。创建初始化内存的方法是随着你所使用的系统版本而改变的。从Fedora Core3以后initrd就由回送设备(loop device)建立。什么是回送设备它是一个设备驱动允许你将一个文件挂载为块设备并对其文件系统做出描述。也许loop device并不存在与你的内核中但是你能够通过内核的配置工具(make menuconfig)打开它。路径是Device Drivers-》Block Devices-》LoopBack Device support。下面为检查命令# mkdir temp ; cd temp# cp /boot/initrd.img.gz .# gunzip initrd.img.gz# mount -t ext -o loop initrd.img /mnt/initrd# ls -la /mnt/initrd#现在你可以通过查看/mnt/initrd的子目录来查看initrd的内容。需要注意的是即使你的initrd镜像文件并不是以.gz做为后缀名但是你同样可以通过增加此后缀名来让gunzip打开它。从Fedora Core3开始默认的initrd镜像就是一个压缩的gpio归档文件。除了用挂载文件的方式以外你同样可以通过cpio归档的方式来将其挂载成使用了回送设备的压缩镜像。你可以通过以下的指令来检查这个cpio归档文件的内容# mkdir temp ; cd temp# cp /boot/initrd-2.6.14.2.img initrd-2.6.14.2.img.gz# gunzip initrd-2.6.14.2.img.gz# cpio -i --make-DirectorIEs initrd-2.6.14.2.img你看到的结果将是一个小型根文件系统如下所示# ls -la#drwxr-xr-x 10 root root 4096 May 7 02:48 .drwxr-x--- 15 root root 4096 May 7 00:54 ..drwxr-xr-x 2 root root 4096 May 7 02:48 bindrwxr-xr-x 2 root root 4096 May 7 02:48 devdrwxr-xr-x 4 root root 4096 May 7 02:48 etc-rwxr-xr-x 1 root root 812 May 7 02:48 init-rw-r--r-- 1 root root 1723392 May 7 02:45 initrd-2.6.14.2.imgdrwxr-xr-x 2 root root 4096 May 7 02:48 libdrwxr-xr-x 2 root root 4096 May 7 02:48 loopfsdrwxr-xr-x 2 root root 4096 May 7 02:48 proclrwxrwxrwx 1 root root 3 May 7 02:48 sbin - bindrwxr-xr-x 2 root root 4096 May 7 02:48 sysdrwxr-xr-x 2 root root 4096 May 7 02:48 sysroot#一些小的但是很有必要的程序组合能在./bin目录下得到包括nash(它不是一个shell而是一个脚本解释工具)用于加载内核模块的insmod以及lvm等。上面所示目录中相对比较有趣的是root目录下的初始化文件。这些文件和传统的linux启动过程中一样是在initrd镜像被解压缩到RAM中时生成的。待会我们将继续探讨这个问题。3 创建initrd的工具。现在让我们回到一开始的讨论initrd的镜像是如何被创建的在传统的linux系统中initrd是在linux build的时候被创建的。像mkinitrd这样的许许多多的工具都能够用于通过必须的库和模块来自动构建一个用于过渡到真实根文件系统的initrd。事实上mkinitrd工具是一个脚本文件因此我们能够很清楚得看到这个过程是如何进行的。同样的YAIRD (Yet Another Mkinitrd)工具也允许我们自定制每一个initrd被构建的阶段。4 自己动手打造自定义的初始化内存盘由于很多基于linux的嵌入式系统都没有硬盘驱动器initrd也可以做为永久性的根文件系统。下面我就将告诉你们如何创建一个initrd镜像。我使用的是标准linux桌面系统因此大家即使没有嵌入式目标设备也可以照着做。除了交叉编译以外嵌入式目标文件的构建过程是相同的。#!/bin/bash# Housekeeping...rm -f /tmp/ramdisk.imgrm -f /tmp/ramdisk.img.gz# Ramdisk ConstantsRDSIZE4000BLKSIZE1024# Create an empty ramdisk imagedd if/dev/zero of/tmp/ramdisk.img bs$$BLKSIZE count$$RDSIZE# Make it an ext2 mountable file system/sbin/mke2fs -F -m 0 -b $$BLKSIZE /tmp/ramdisk.img $$RDSIZE# Mount it so that we can populatemount /tmp/ramdisk.img /mnt/initrd -t ext2 -o loop/dev/loop0# Populate the filesystem (subdirectories)mkdir /mnt/initrd/binmkdir /mnt/initrd/sysmkdir /mnt/initrd/devmkdir /mnt/initrd/proc# Grab busybox and create the symbolic linkspushd /mnt/initrd/bincp /usr/local/src/busybox-1.1.1/busybox .ln -s busybox ashln -s busybox mountln -s busybox echoln -s busybox lsln -s busybox catln -s busybox psln -s busybox dmesgln -s busybox sysctlpopd# Grab the necessary dev filescp -a /dev/console /mnt/initrd/devcp -a /dev/ramdisk /mnt/initrd/devcp -a /dev/ram0 /mnt/initrd/devcp -a /dev/null /mnt/initrd/devcp -a /dev/tty1 /mnt/initrd/devcp -a /dev/tty2 /mnt/initrd/dev# Equate sbin with binpushd /mnt/initrdln -s bin sbinpopd# Create the init filecat /mnt/initrd/linuxrc EOF#!/bin/ashechoecho Simple initrd is activeechomount -t proc /proc /procmount -t sysfs none /sys/bin/ash --loginEOFchmod x /mnt/initrd/linuxrc# Finish up...umount /mnt/initrdgzip -9 /tmp/ramdisk.imgcp /tmp/ramdisk.img.gz /boot/ramdisk.img.gz想创建initrd的话你需要首先创建一个空文件将/dev/zero(0字符流)做为ramdisk.img的输入。得到的文件大小大约是4MB(有4000个1K的块组成)。接下来用mke2fs命令来创建一个使用这个空文件的ext2文件系统。现在这个文件就是一个ext2文件系统。ok接下来以回路设备的形式挂载这个文件到/mnt/initrd现在你就在挂载点拥有一个代表着ext2文件系统的目录并用与存放你的initrd。其他大多数的脚本语句都是用于实现这个功能。下一步就是创建一些必须的子目录用于生成你的根文件系统 /bin, /sys, /dev, 和 /pro。这里只需要少数几个目录例如没有/lib。但是它们已经包含了大部分功能。如果想让你的根文件系统发挥更大的作用请使用 BusyBox。这个工具是一个包含了许多独立工具的镜像这些独立的工具你都能在linux中找到( ash, a等等wk, sed, insmod)。BusyBox的优势在于它把它们集合在了一起并分享了公用的部分从而极大缩小了镜像的体积。这对于嵌入式系统来讲是非常理想的。请将BustBox镜像从它的源目录中复制出来到你的/bin目录下这样很多指向BusyBox工具集的符号链接将被创建BusyBox能确定哪一个工具将被使用并自动引用它。这个/bin目录下被创建的链接的小型集合将用于对启动脚本的支持。再下一步就是一小部分特殊设备文件的创建。我从我的/dev文件夹中直接拷贝了出来别忘了加上-a选项来保持它们原有的属性。倒数第二步就是生成linuxrc文件。在内核挂载了内存盘之后它将搜索并执行相关的启动文件如果没有找到内核就将linuxrc文件做为其启动脚本。你最好在这个文件中对环境变量做一些基本设置例如挂载/proc文件系统等。除了/proc外我还挂载了/sys文件系统将消息发送给终端。最后我调用ash并通过它和根文件系统交互。最后记住用chmod把linuxrc文件的属性改为可执行。最后你的根文件系统算是ok了。现在它并没有被挂载用gzip将它压缩并将压缩后的文件ramdisk.img.gz拷贝到/boot目录下这样它就能被GRUB调用。想要构建你的初始化ram盘的话你只需要调用mkird镜像就将自动创建并拷贝到/boot目录下。
http://www.zqtcl.cn/news/198894/

相关文章:

  • 建设网站对服务器有什么要求灌南县规划局网站一品嘉苑规划建设
  • 常平镇仿做网站wordpress教程 菜单
  • 大气的企业网站做网站服务怎么赚钱
  • 如何用网站做淘宝客网易企业邮箱怎么修改密码
  • 白酒网站设计wordpress增加网址大全
  • 网站上图片可以做商业作品吗成都十大景观设计公司
  • 自助建站网站哪个好2017织梦网站怎么做seo
  • 佛山新网站建设咨询做业精灵官方网站
  • 大庆网站设计费用asp网站仿制
  • 革吉网站建设网页游戏中心大全
  • 好的网站特点京东物流网站建设特点
  • 昆明企业自助建站系统网站建设技术交流
  • 卖网站模板网站哪家做的比较好
  • 舟山网站网站建设视频网站建设应该注意什么
  • 网站建设 思维导图免费flash网站源码
  • 提供零基础网站建设教学公司wordpress悬浮下拉
  • 做网站代码难么南京市建设监理协会网站
  • 网站维护 静态页面正规企业展厅设计公司
  • 网站分享图片怎么做东莞网站优化关键词费用
  • 做摄影网站的目的域名注册和网站设计服务
  • 手表网站设计免费常州百度推广优化
  • 网站开发找聚脑网视频直播源码
  • 提供免费服务器的网站南沙电子商务网站建设
  • 厦门网站建设开发公司企业网站设计源代码
  • 微网站服务器酒店手机网站首页设计
  • 网站交互做的比较好的怎样营销网站建设
  • 电子商务网站设计代码凡科做的网站能被收录吗
  • 设计网站教程自动点击器永久免费版
  • 深圳 网站建设设计如何用公众号做网站
  • 免费微信网站制作北风淘淘网站开发