linux启动流程,Linux下添加硬盘与分区和格式化详

linux启动流程
一、linux启动流程从哪里到哪里
本文旨在描述linux中内核如何调用启动,然后如何从img的文件系统切换到硬盘的过程。
描述起于:linux-2.6.11initmain.c中函数 static int init(void * unused)
描述止于:etcrc.drc.sysinit文件的被调用
二、描写linux启动流程
在linux代码linux-2.6.11initmain.c中init这个函数被调用时,初始启动的文件
系统镜像:ootinitrd-2.6.11.12.img(以2.6.11.12内核为例)已被gru加载到
内存中,并已挂载到根目录上("")。
1、我们先来看看initrd-2.6.11.12.img到底是个什么东西:
[root@wj-server1 tmp]# cd tmp
[root@wj-server1 tmp]# cp ootinitrd-2.6.11.12.img tmpinitrd-2.6.11.12.gz
[root@wj-server1 tmp]# gunzip initrd-2.6.11.12.gz
解压缩后的文件为:
[root@wj-server1 tmp]# ls -l initrd-2.6.11.12
-rw-r--r-- 1 root root 846848 7月 31 17:01 initrd-2.6.11.12
是一个CPIO格式的文件,该文件格式是种文件镜像让我们将它解开到一个目录中看看
其中的具体内容:
[root@wj-server1 tmp]# mkdir initrd
[root@wj-server1 tmp]# cd initrd
[root@wj-server1 initrd]# cpio -i  ..initrd-2.6.11.12
1654 locks
[root@wj-server1 initrd]# gzip ..initrd-2.6.11.12
[root@wj-server1 initrd]# mv ..initrd-2.6.11.12.gz ..initrd-2.6.11.12.img 图片 1

  二十一世纪到了,每个人都强调自己的个性,于是一种叫做DIY的东西悄然兴起。
  操作系统作为全人类智慧的结晶,自然DIY起来难度极大,因而DIY出一个操作系统成就感绝对比买宜家的东西的成就感大。
  为了不至于从头开始编写一个操作系统,我们当然把采用现成的操作系统作为一个底线。
  当然,我们可以通过LFS让我们爽到底,但是,能够做到LFS的人可真的是凤毛麟角。而且更重要的是LFS简直在挑战我的忍耐程度。
  我的这篇文章,教大家如何DIY一个自己的Ubuntu发行版。在非常节省时间的情况下,达到耍酷的目的。
  就好比LFS一样,我们需要一个创作基地。我们首先建立一个变量。建立这个变量的好处很明显,即使你不用~/diy_ubuntu这个目录,一样可以照着这个文章继续做下去。
  $ export WORK=~/diy_ubuntu
  $ mkdir -p $WORK
  然后我们把光盘镜像文件挂到/mnt
  $ sudo mount -t iso9660 -o loop dapper-live-i386.iso /mnt
  $ cd $WORK
  复制文件光盘文件
  $ mkdir ubuntu-livecd
  $ cp -a /mnt/. ubuntu-livecd
  $ chmod -R u w ubuntu-livecd
  $ sudo umount /mnt
  由于光盘中包含了很多windows下面的自由软件,我们来把不必要的文件删除。当然你可以保留。
  $ rm -rf $WORK/ubuntu-livecd/programs
  把光盘中的压缩文件挂起来,这个样子以后你可以在$WORK/old目录中看到一个完整的linux操作系统的目录。
  $ mkdir $WORK/old
  $ sudo mount -t squashfs -o loop,ro $WORK/ubuntu-livecd/casper/filesystem.squashfs $WORK/old
  我们建立一个2GB大小的文件系统,然后把这个文件当作一个设备文件格式化,结果系统给出了一个警告,别理会它,选择是就是。
  $ sudo dd if=/dev/zero of=$WORK/ubuntu-fs.ext2 bs=1M count=2147
  $ sudo mke2fs $WORK/ubuntu-fs.ext2
  然后我们把这个空文件系统挂起来。
  $ mkdir $WORK/new
  $ sudo mount -o loop $WORK/ubuntu-fs.ext2 $WORK/new
  复制linux操作系统的文件.由于我们事先得到的linux是压缩的,所以我们把它解压了。
  $ sudo cp -a $WORK/old/. $WORK/new
  当然现在$WORK/old就没有用处了。废掉它
  $ sudo umount $WORK/old
  我们首先进入刚才得到的那个操作系统
  $ sudo cp /etc/resolv.conf $WORK/new/etc/
  $ sudo mount -t proc -o bind /proc $WORK/new/proc
  $ sudo chroot $WORK/new /bin/bash图片 2

Linux下添加硬盘与分区和格式化详解
在我们添加硬盘前,首先要了解linux系统下对硬盘和分区的命名方法。
在Linux下对IDE的设备是以hd命名的,第一个ide设备是hda,第二个是hdb。依此类推
我们一般主板上有两个IDE接口,一共可以安装四个IDE设备。主IDE上的两个设备分别对应hda和hdb,第二个IDE口上的两个设备对应hdc和hdd。
一般我们的硬盘安装在主IDE的主接口上,所以是hda
光驱一般安装在第二个IDE的主接口上,所以是hdc(应为hdb是用来命名主IDE上的从接口)
SCSI接口设备是用sd命名的,第一个设备是sda,第二个是sdb。依此类推
分区是用设备名称加数字命名的。例如hda1代表hda这个硬盘设备上的第一个分区。
每个硬盘可以最多有四个主分区,作用是1-4命名硬盘的主分区。逻辑分区是从5开始的,每多一个分区,数字加以就可以。
比如我们一般的系统都有一个主分区用来引导系统,这个分区对应我们常说的C区,在linux下命名是hda1。后面我们分三个逻辑分区对应常说的D、E、F,在linux下命名是hda5、hda6、hda7
给硬盘分区
在slackware下有两个分区软件fdisk和cfdisk
例如我们已经有一个硬盘了,现在添加另一个硬盘到系统
那么我们根据命名规则知道这个新添加的硬盘应该是hdb。我们用下面命令给硬盘分区
fdisk /dev/hdb
你也可以用cfdisk来分区,命令如下
cfdisk /dev/hdb
格式化硬盘
格式化成ext3格式
mkfs.ext3 /dev/hdb1
格式化成reiserfs的格式
mkfs.reiserfs /dev/hdb1
让硬盘启动自动挂载
例如挂载/dev/hdb1分区到/mnt/hd目录下
用vi编辑/etc/fstab文件,加入如下内容
/dev/dhb1       /mnt/hd         reiserfs           defaults             1     1
图片 3

本文由ca88手机版登录发布于ca88手机版,转载请注明出处:linux启动流程,Linux下添加硬盘与分区和格式化详

TAG标签: ca88手机版登录
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。