線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1972
推到 Plurk!
推到 Facebook!

Enabling swap space的文字畫面

尚未結案
ksvm
一般會員


發表:29
回覆:42
積分:14
註冊:2004-07-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-16 00:12:32 IP:218.171.xxx.xxx 未訂閱
Linux執行當掉重開就停在Enabling swap space的文字畫面,也無法進入Linux. 不知各位有好方法? Thanks
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-16 00:18:29 IP:61.64.xxx.xxx 未訂閱
http://www.douzhe.com/docs/linux/642.html    edHat 7.3 Live in CDROM HowTo 2004-04-23 15:18 pm 作者:knothair 來自:Linux知識寶庫 http://www.douzhe.com/docs/linux/ Contact: 無名    思路:  使用cdrom引導並運行linux,關鍵要解決如下問題:  一:如何把系統運行時候使用的檔系統/dev,/var,/tmp變成可寫。  二:如何改變系統引導順序  基本步驟:  (0) 環境準備  。準備一個PC  大硬碟  光碟燒錄機  128M記憶體  分區如下  /dev/hda1 linux boot ext2  /dev/hda2 linux root ext2  /dev/hda3 linux swap  /dev/hda4 extendend  /dev/hda5 linux root ext2 至少650M以上     。main install安裝。  boot分區在/dev/hda1,  root分區在/dev/hda2,  swap分區在/dev/hda3。  必要的工具,例如mkisofs、cdrecord等。     。test install安裝  一個分區在/dev/hda5,  swap使用/dev/hda3,  只安裝需要放置到CDROM的軟體.  注意:不能破壞主引導磁區,它是通過main inst的lilo引導的     。雙引導配置  重新啟動電腦,此時會進入main install,執行如下步驟:  #mkdir /mnt/lfs  #mount –t ext2 /dev/hda5 /mnt/lfs  # vi /etc/lilo  # /sbin/lilo  ——————————————————————  /etc/lilo.conf檔內容如下:  prompt  timeout=50  default=linux  boot=/dev/had  map=/boot/map  install=/boot/boot.b  message=/boot/message  linear     image=/boot/vmlinuz-2.4.18-3  label=main_inst  initrd=/boot/initrd-2.4.18-3.img  read-only  append="ramdisk=20480"  root=/dev/hda2 <——main install 的root分區     image =/mnt/lfs/boot/vmlinuz-2.4.18-3  label=test_inst  read-only  append="ramdisk=32768"  root=/dev/hda5 &——test install的root分區  ————————————————————————————     。test install環境調整  重新引導,選擇test install ;  確認test install 能夠自引導並且一切都正常;  然後根據需要,可以做:  刪除不必要的套裝軟體,  安裝用戶應用軟體,  重新編譯內核。等等     (一)配置test install環境     。重新引導,選擇main install ,並執行  #mount –t ext2 /dev/hda5 /mnt/lfs  。配置/var,/dev到ramdisk系統  #vi /mnt/lfs/etc/rc.d/rc.iso  _______________________________  創建/mnt/lfs/etc/rc.d/rc.iso  # /var  mke2fs -q -i 1024 /dev/ram1 16384  mount /dev/ram1 /var -o defaults,rw  cp -a /lib/var /     # /dev  mke2fs -q -i 1024 /dev/ram2 16384  mount /dev/ram2 /dev -o rw  cp -a /lib/dev /  (建立這麼大的/dev是因為inode數目的限制,dev下檔特別多)  ____________________________________________________  。編輯/mnt/lfs/etc/rc.sysnit  a) 禁止重新mount 根檔系統位元rw  # Remount the root filesystem read-write.  # state=`awk '/(^/dev/root| / / { print $4 }' /proc/mounts`  #[ "$state" != "rw" ] &&  # action $"Remounting root filesystem in read-write mode: " mount -n -o remount,rw /  b) 調用rc.iso腳步  在  # Set the path  PATH=/bin:/sbin:/usr/bin:/usr/sbin  export PATH  HOSTNAME=`/bin/hostname`  一節之後,增加如下內容  # To boot from cdrom  . /etc/rc.d/rc.iso  c)禁止啟動交換分區  # Now turn on swap in case we swap to files.  #swapon -a  #action $"Enabling swap space: " /bin/true     d)禁止執行fsck  在這個位置  if [ -f /fsckoptions ]; then  fsckoptions=`cat /fsckoptions`  else  fsckoptions=  fi  增加語句,用來控制是否執行fsck  fastboot=yes  fsckoptions=     e)禁止mount 其他檔系統  # Mount all other filesystems (except for NFS and /proc, which is already  # mounted). Contrary to standard usage,  # filesystems are NOT unmounted in single user mode.  #action $"Mounting local filesystems: " mount -a -t nonfs,smbfs,ncpfs -O no_netdev  f) 禁止自動執行檔系統檢查  # create the crash indicator flag to warn on crashes, offer fsck with timeout  # touch /.autofsck  。編輯/etc/rc.d/init.d/random  修改如下語句  random_seed=/var/lib/random-seed  為  random_seed=/var/run/random-see     。創建並執行如下腳步,它建立了/var 、/tmp、/dev的範本, 創建/etc/mtab的鏈結  #cd /mnt/lfs  # vi create_iso.sh  # sh create_iso.sh     ————————————————————————  #!/bin/sh  echo tmp  rm -fR /mnt/lfs/tmp  ln -s var/tmp /mnt/lfs/tmp     ###  echo mtab  touch /mnt/lfs/proc/mounts  rm /mnt/lfs/etc/mtab  ln -s /proc/mounts /mnt/lfs/etc/mtab  ###  echo dev  mkdir /mnt/lfs/lib/dev  cp –a /mnt/lfs/dev /mnt/lfs/lib  ###  echo var  mv /mnt/lfs/var/lib /mnt/lfs/lib/var-lib  mv /mnt/lfs/var /mnt/lfs/lib  mkdir /mnt/lfs/var  ln -s /lib/var-lib /mnt/lfs/lib/var/lib  for i in `find /mnt/lfs/lib/var/log -type f`; do cat /dev/null > $i; done  rm `find /mnt/lfs/lib/var/lock -type f`  rm `find /mnt/lfs/lib/var/run -type f`  ______________________________________________     。 確認test install環境的正確  重新引導,選擇test install  這時這個install應該象一個cdrom似的。  如果有什麼工作不正常,或者重新引導,選擇main install後進行修復;  或者在test install中執行如下命令後可以進行修復:  mount -o remount,rw /     (二) 創建boot image  。重新引導,選擇main install     。產生一個可以啟動的軟碟  # mkbootdisk --mkinitrdargs --with=ide-cd `uname -r`     。按照如下步驟抽取boot.img中的文件  # dd if=/dev/fd0 of=/tmp/cdrom.img bs=1440k count=1  # mkdir /mnt/bootfd  # mount -o loop -t msdos /tmp/cdrom.img /mnt/bootfd  # zcat /mnt/bootfd/initrd.img > /tmp/initrd-cdrom  # mkdir /mnt/initrd  # mount -o loop /tmp/initrd-cdrom /mnt/initrd  。拷貝test install的內核到boot.img文件中  cp /mnt/lfs/boot/zImage /mnt/bootfd  注意:根據實際情況,有可能需要修改zImage的名字  。拷貝cdrom驅動模組到cdrom.img中  #cd /mnt/initrd/lib  #cp /lib/modules/2.4.18-3/kernel/drivers/cdrom/cdrom.o .  #cp /lib/modules/2.4.18-3/kernel/drivers/ide/ide-cd.o .  #cp /lib/modules/2.4.18-3/kernel/fs/nls/nls_iso8859-1.o .  。 編輯linuxrc檔  # vi /mnt/initrd/linuxrc  ----------------------------------  #!/bin/nash     echo "Loading cdrom module"  insmod /lib/cdrom.o  echo "Loading ide-cd module"  insmod /lib/ide-cd.o  echo "Loading nls_iso8859-1 module"  insmod /lib/nls_iso8859-1.o  echo Mounting /proc filesystem  mount -t proc /proc /proc  echo Creating root device  mkrootdev /dev/root  echo 0x0100 > /proc/sys/kernel/real-root-dev  echo Mounting root filesystem  mount --ro -t iso9660 /dev/root /sysroot  umount /proc  pivot_root /sysroot /sysroot/initrd  ---------------------------------------------  。編輯boot.img文件中的syslinux.cfg  # cd /mnt/bootfd  # vi syslinux.cfg  _____________________________________  default linux  label linux  kernel zImage  append initrd=initrd.img root=/dev/hdc rmdisk=32768     ———————————————————————  注意:root= 後面是光碟機設備名稱     。壓縮initrd,並拷貝到boot.img  # umount /mnt/initrd  # gzip -9 < /tmp/initrd-cdrom > /mnt/bootfd/initrd.img     。拷貝boot image檔  # umount /mnt/bootfd  # mv /tmp/cdrom.img /mnt/lfs/boot.img     (三) 創建並校驗iso image  。繼續在main install中工作  。創建iso image     # cd /root/lfs & 確保其空間足夠存儲iso image  #mkisofs -R -b boot.img -c boot.catalog -o boot.iso /mnt/lfs     。校驗iso image的正確性     a) 通過loop 設備 mount 光碟映象檔  # mkdir /mnt/iso  # mount boot.iso /mnt/iso -o loop -t iso9660  b) 校驗boot.iso 內容正確  c) umount boot.iso  umount /mnt/iso  (四) 刻錄光碟  1) 使用linux來刻錄  刻錄設備的安裝請參考CD-Writing HOWTO。  命令行:  cdrecord -v speed= dev= boot.iso 2)如果使用windows來刻錄 可以把iso image ftp到windos平臺上,然後使用相應的程式進行刻錄 其他問題 1: dev檔系統 我是通過建立ramdisk的辦法來完成的。這需要配置內核支援足夠大的ramdik。 另外的一種做法是使用DEVFS檔系統來完成對dev目錄的出來,我沒有嘗試。。 2:其他檔系統 系統在啟動的時候會提示“mount other filesystem fail“這個問題可以通過注釋/etc/rc.d/init.d/netfs文件: Action $”Mounting other filesystem:” mount –a –t nonfs,smbfs,ncpfs來解決。 但是如果注釋掉的話會telnet連接不了 3: 繼續‘瘦身’ 我目前只是沒有安裝x window,應該還可以繼續減少其他套裝軟體。 4: 換碟 使用目前的引導辦法,cdrom啟動之後,就不能更換。在那篇日文的資料裏,介紹了使用tmpfs系統的辦法,把整個root系統放到記憶體了。這是通過在boot的時候,使用init選項把這個檔展開。 5:通用性問題 不同硬碟、光碟機、主板、網卡 參考資料: http://www.linuxaid.com.cn/articles/7/1/710687494.shtml 介紹製作自己的linux發行版,裏面關於boot.img文件的分析比較好 http://tldp.org/HOWTO/Diskless-root-NFS-HOWTO.html 有一章是關於製作live in cdrom的。特別是講解了原理 http://tldp.org/HOWTO/Bootdisk-HOWTO/index.html 關於lilo,boot 過程的權威 http://www15.big.or.jp/~yamamori/sun/cdlinux/ 關於用cdrom直接運行遊戲的介紹,日文的。Initrd.Img的配置比較詳細 全文結束
系統時間:2024-05-15 14:10:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!