bluejing0 发表于 2007-3-9 22:36:52

使用live cd引导硬盘安装的Magic Linux

解决了:
方法如下:

第一步:用任何LIVECD 或者直接用内核启动到#下
      我这里用的是ubuntu的liveCD。
      把Ubuntu的LiveCD放到光驱,设置CMOS让PC从CD启动, 在UBUNTU 出现BOOT的时候,输入: live-expert。
      这时候LIVECD会从CD加载内核,并启动之。等到UBUNTU出现蓝色的选择菜单的时候,选择:start a shell,直接进入SHELL
第二步:加载MAGIC分区
      这时候文件系统其实是在内存中的,我们这时候要加载原来的MAGIC分区。
      mkdir -p /mnt/magic
            mount /dev/sdb1 /mnt/magic (我的MAGIC /分区在/dev/sdb1如果你的MAGIC分了多个区,请分别加载)
            cd /mnt/magic
            chroot .
            修改MAGIC的/sbin/mkinitrd
            vi /sbin/mkinitrd
      如果没有用过VI可能会觉得比较奇怪,可以从网上找个文章来看,总的来说,VI有两种模式:浏览模式和编辑模式,两者之间可以用简单的命令进行切换。
      摁esc进入浏览模式,输入 :/mkrootdev 来查找“echo "mkrootdev /dev/root" >> $RCFILE ”,摁n N在下一个和上一个查找结果之间切换。找到这一行:echo "mkrootdev /dev/root" >> $RCFILE ,把光标移到这一行,摁O(大写的opq 的o)在这一行之前插入一行。
         在这之前一行加入如下:(因为加载USB驱动需要一点时间,要SLEEP一下,具体的时间看你的机器面定,我这儿设置为7秒)
       echo "sleep 7" >> $RCFILE
      ESC切换到浏览模式,输入 x! 保存退出。

然后做的就是重新生成预先加载USB驱动的initrd 了!(如果你的移动硬盘不支持USB2.0,请换一个驱动: )
mkinitrd --preload=ehci-hcd /boot/usb2.img 2.6.15.3

然后就是重起了!
用移动硬盘启动电脑
进入GRUB命令行:
root (hd0,1)
kernel /boot/vmlinx***** root=/dev/sdb1 vga=normal
initrd /boot/usb2.img
boot
成功了!



有不明白的可以给我发信 bluejing0#126 或者回帖




我的方法在3楼


配置如下:笔记本硬盘在LINUX下被识别为/dev/sda
移动硬盘识别为/dev/sdb 其中/dev/sdb1 是我安装MAGIC的分区,挂载于/

grub for dos 安装于/dev/sda,

在GRUB画面C进入 command:
root (hd1,0)
kernel /boot/vmlinuz*** root=/dev/sdb1 vga=normal
initrd /boot/initrd****
boot
失败。 代码为mount root分区失败。

按照 http://bbs.linuxsky.org/thread-2268-1-9.html 中作者的说法,我进行了如下操作:解压原来的initrd.img,cp USB/SCSI相关的驱动到initrd的lib目录,并修改initrd 如下:

#!/bin/nash
mount -t proc /proc /proc
setquiet
echo Mounted /proc filesystem
echo Mounting sysfs
mount -t sysfs /sys /sys
echo Creating /dev
mount -o mode=0755 -t tmpfs /dev /dev
mknod /dev/console c 5 1
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mkdir /dev/pts
mkdir /dev/shm
echo Creating device nodes
#The after line were added by hail
/sbin/udevstart
#The before line were added by hail
echo -n /sbin/hotplug> /proc/sys/kernel/hotplug
#the after lines were added by hail
echo ***Loading scsi************************************************************
insmod /lib/scsi_transport_spi.ko
insmod /lib/scsi_transport_fc.ko
echo ****Loading usb-storage **************************************************
insmod /lib/usb-storage.ko
echo ****Loadin usb-uhci(ehci-hcd.ko)******************************************
insmod /lib/ehci-hcd.ko
echo wait 15 seconds for init UsbDisk*******************************************
/bin/sleep 15
/sbin/udevstart
#the before lines were added by hail
#makedevs
#makedevs
echo Creating root device
mkrootdev /dev/root
#The after lines were added by hail
echo ****Reread partition table *************************************************
/sbin/sfdisk -R /dev/sda
/sbin/sfdisk -R /dev/sdb


这一步会出错: failed to execute sfdisk: 但是我确实把sfdisk拷贝到/sbin并且给了它777的权限。
#The before lines were added by hail
echo Mounting root filesystem
mount -o defaults --ro -t ext3 /dev/root /sysroot
因为前一步失败了。这一步当然不会mount上root
echo Switching to new root
switchroot --movedev /sysroot

谁用移动硬盘成功过,教教我呀。。谢谢 :)

sejishikong 发表于 2007-3-9 22:42:46

sfdisk是个动态链接的程序,需要把相应的库也拷过去吧。或者重新编译成静态的。

bluejing0 发表于 2007-3-10 10:19:25

解决了:
方法如下:

用任何LIVECD 或者直接用内核启动到#下
挂载原来的分区到 /mnt下一目录
   mkdir -p /mnt/magic
   mount /dev/sdb1 /mnt/magic
   cd /mnt/magic
   chroot .
然后修改MAGIC的/sbin/mkinitrd
   vi /sbin/mkinitrd
   查找这一行 :echo "mkrootdev /dev/root" >> $RCFILE
   在这之前一行加入如下:(因为加载USB驱动需要一点时间,要SLEEP一下,具体的时间看你的机器面定,我这儿设置为7秒)
   echo "sleep 7" >> $RCFILE

然后做的就是重新生成预先加载USB驱动的initrd 了!(如果你的移动硬盘不支持USB2.0,请换一个驱动: )
mkinitrd --preload=ehci-hcd /boot/usb2.img 2.6.15.3

然后就是重起了!
用移动硬盘启动电脑
进入GRUB命令行:
root (hd0,1)
kernel /boot/vmlinx***** root=/dev/sdb1 vga=normal
initrd /boot/usb2.img
boot
成功了!



有不明白的可以给我发信 bluejing0#126 或者回帖

npcomet 发表于 2007-3-10 10:22:34

lz可以再整理下
然后就可以设置为精华了 :-D

江涛的马甲 发表于 2007-3-10 12:56:20

lz干脆做个移动硬盘版的ml吧

KDE 发表于 2007-3-10 18:28:50

使用新的 2.6.20.1 内核就应该可以直接从移动硬盘启动。因为我把所有 scsi、raid、usb、sata、pata 驱动直接编译进了内核里,而没有做成模块。这样就不需要在 initrd 里预先加载什么驱动了。

bluejing0 发表于 2007-3-11 21:04:26

已经整理好了 :)

npcomet 发表于 2007-3-11 21:33:36

设置精华了
改了下标题
页: [1]
查看完整版本: 使用live cd引导硬盘安装的Magic Linux