六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學習啦>學習電腦>操作系統(tǒng)>Linux教程>

initramfs鏡像命令如何生成及運行

時間: 若木635 分享

  生成initramfs鏡像命令

  若鏡像根目錄為/initrd,執(zhí)行下面命令在當前用戶主文件夾中生成myinitramfs.gz鏡像。

  cd /initrd

  find .|cpio -o -H newc|gzip>~/myinitramfs.gz

  生成的鏡像文件是gzip壓縮過的。

  如何運行initramfs

  如果第一章開發(fā)工具學習 你會了的話,這是很好辦的事。首先要找一個內(nèi)核,自己編譯一個也可以,用現(xiàn)有l(wèi)inux系統(tǒng)內(nèi)核也可以,一般在/boot文件夾內(nèi)。

  設(shè)置一個menu.lst加入對自己制作的initrd的啟動項,可以如下:

  title my initramfs

  root (hd0,0)

  kernel /boot/vmlinuz

  initrd /boot/myinitramfs.gz

  boot

  其中內(nèi)核和鏡像都放到了U盤的boot文件夾下了。

  其實啟動方法有很多,對于熟悉GRUB的人來說這很簡單,所以多了解一點GRUB還是很好的。

  這樣的好處是不用重啟系統(tǒng),如果在linux中設(shè)置grub的話要重啟系統(tǒng),很費時間。

  生成initrd鏡像

  下面是一個shell文件,可以自動將/initrd目錄下的文件打包成myinitrd.img鏡像。

  #!/bin/sh

  dd if=/dev/zero of=/dev/ram1

  mke2fs -m 0 /dev/ram1

  mount /dev/ram1 /mnt/ram

  cp -R /initrd/* /mnt/ram

  umount /dev/ram1

  dd if=/dev/ram1 of=~/myinitrd.img

  gzip -v9 ~/myinitrd.img

  生成位置為當前用戶主文件夾。

  RedHat的initrd

  下面是鏡像中的linuxrc文件。

  #!/bin/nash

  echo "Loading scsi_mod.o module"

  insmod /lib/scsi_mod.o

  echo "Loading sd_mod.o module"

  insmod /lib/sd_mod.o

  echo "Loading BusLogic.o module"

  insmod /lib/BusLogic.o

  echo "Loading jbd.o module"

  insmod /lib/jbd.o

  echo "Loading ext3.o module"

  insmod /lib/ext3.o

  echo Mounting /proc filesystem

  mount -t proc /proc /proc

  echo Creating block devices

  mkdevices /dev

  echo Creating root device

  mkrootdev /dev/root

  echo 0x0100 > /proc/sys/kernel/real-root-dev

  echo Mounting root filesystem

  mount -o defaults --ro -t ext3 /dev/root /sysroot

  pivot_root /sysroot /sysroot/initrd

  umount /initrd/proc

  pivot_root是切換到真實系統(tǒng)的一個命令下面有詳細講述。下面是redhat鏡像中的所有文件的結(jié)構(gòu):

  │ linuxrc

  │

  ├─bin

  │ insmod

  │ nash

  │

  └─lib

  BusLogic.o

  ext3.o

  jbd.o

  scsi_mod.o

  sd_mod.o

75382