我在公司的机器没有光驱,有Ubuntu的Desktop安装盘也没有用,捣鼓了很久的硬盘安装也没有成功,因为Ubuntu Dapper使用了Live CD的启动方式。而我尝试过唯一能从硬盘ISO安装成功的就是Fedora Core 5了。
在研究了数周毫无结果就要放弃的时候,我突然灵机一动,觉得既然Ubuntu Dapper的CD就是一个完整的Linux系统,那何不直接拿来用呢?在经过了一整夜的研究之后,我终于用这种丑陋的方法,将Ubuntu Dapper装在了没有光驱的机器上。
具体步骤如下:
- 进入原有的Linux系统,先对系统进行分区,将目标系统的root分区准备好,并挂载在某个目录比如/target下,然后将其他分区准备好,相应挂载在/target下(比如/usr, /var, /home等)。在此不赘述,可以参考Gentoo的磁盘准备的教程。
- 使用
mount -o loop -t iso9660
[ISO文件路径] [挂载路径A] 将镜像挂载到某个目录下A,这里我使用的镜像是Ubuntu Dapper的desktop安装镜像。
- 然后再用
mount -o loop -t squashfs A/casper/filesystem.squashfs [挂载目录B]
,因为Ubuntu Dapper的Live CD的文件系统内容都是以squashfs形式压缩在光盘的casper/filesystem.squashfs文件中的。
- 在刚刚挂载好的Live CD的目录B中,复制所有文件到/target下,
cp -p -r B/* -t /target
其中-p表示保留所有的文件权限信息,-r表示递归复制。这时候基本的系统内容就有了
- 如果有chroot,也可以调用:
chroot /target /bin/bash
(以下假设运行了这条指令,根目录转到了/target中)
- 准备/etc/fstab,起初的内容都是空的,根据自己分区的情况酌情编写,以下是一个参考例子:
#
/dev/hdax /boot ext2 noauto,noatime 1 2 /dev/hdax none swap sw 0 0 /dev/hdax / reiserfs noatime 0 1 /dev/cdroms/cdrom0 /mnt/cdrom auto noauto,user 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 - 准备引导文件,如果已经装了Grub或者Lilo,只需要修改一下相应的配置文件,比如,在grub的menu.lst中加入:
title Load Ubuntu Dapper
root (hd0,5) #假设是这里的安装根目录
kernel /vmlinuz root=/dev/hda6 quite splash -
initrd /initrd.img - 如果是自己用无所谓建立新用户的话,将来可以直接使用root(初始密码为空),但必须在/etc/X11/gdm中,将gdm.conf和factory-gdm.conf中的AllowRoot设置为true。如果需要更加安全,则请建立相应的用户,但必须在/etc/sudoers中添加相应的用户,使用visudo来进行编辑。
- 编辑/etc/apt/source.list,添加一些ubuntu的apt源,具体就不列出来了。
- 调用dpkg-reconfigure -a对所有安装了的Debian包进行重新配置,尤其重要的是xserver-xorg和语言等等
- 之后重启,便可选择进入我们克隆出来的Live CD的系统了。这时候应该对系统进行一些设置,比如在系统中选择自己的语言,并使用新立得来更新系统,同时也可以将Ubuntu Live CD相关的一些包删除。
- 这时候,终于可以在机器上使用Ubuntu Dapper了。
唉……瞎折腾啊。


1 Comments
直接把iso文件烧到U盘里,从U盘启动安装!