今天需要在戴尔R410服务器上装64位的Linux,师兄给了个14.04的server 64位镜像。一开始打算用U盘安装,用软碟通烧写镜像之后,在服务器端设置从U盘启动,但是安装到一半出现了光盘无法挂载的现象,如图所示:
百度,Google了一下,确实也有不少人碰到了这个问题,并且几乎都是在安装server版本时碰到的,Desktop版本的用U盘安装没有这个问题。
总结了一下解决方法:
- 换一个烧录工具,或者用光盘刻录安装没有这个问题,烧写U盘的工具有Win32 Disk Imager,但需要把ISO镜像后缀改成img,这个方法我试了但是没有成功。后来有百度到另一个工具ImageWriter,将ISO后缀改成raw,烧录我用这个方法U盘安装没有出现问题,成功安装。
- 还有一个方法,当U盘出现这个问题时,手动挂载镜像,但前提是这个U盘已经被(不合格的烧录工具如ulraISO等工具烧录的),再往U盘中拷贝整个文件的镜像,通过在终端中用mount命令手动挂载。
具体方法如下:
首先进入shell 用ls命令查看已经挂在的设备如
/dev/sda /dev/sda1 /dev/sda3 /dev/sda5 /dev/sdb /dev/sdb1
接着拔掉U盘再ls /dev/sd* 即可查看到
/dev/sda /dev/sda1 /dev/sda3 /dev/sda5
可以看出u盘就是dev/sdb,那么u盘上的分区就是dev/sdb1
因而我们可以有mkdir udev在跟目录下建立一个空目录
再把u盘挂载到这个目录下面 mount /dev/sdb1 /udev
接着把里面的镜像在挂载进来mount /udev/ubuntu.iso /cdrom
最后退出即可正常安装。
安装结束之后今天又很诡异的碰到了另一个问题
在重启时进入到了busybox 一直显示initramfs如下图
下图可以看到报错:
Gave up waiting for root device. Common problems;
-Boot args (cat /proc/cmdline)
-Check rootdelay = (did the system wait long enough?)
-Check root = (did the system wait for the right device?)
-Missing modules (cat /proc/modules; is /dev)
ALERT! /dev/disk/by-uuid/Bd12fd38-…………..does not exist. Dropping to a shell!
这个问题,经过我一番查找各种资料,是系统在启动时rootdelay时间不够,导致部分设备没有被系统加载进来,需要再引导程序grub中修改等待时间。
而且值得注意的是碰到这种情况输入exit即会出现正常的linux登录界面
但是重新启动每次都会陷入initramfs
但是看了一通别人都说是在sudo vi /boot/grub/menu.lis 文件中修改
可能是版本的问题,我在/etc/default/grub中直接修改,因此在其中将文件中的两个变量
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash rootdelay=120”
GRUB_CMDLINE_LINUX = “quiet splash rootdelay=120”
修改完之后一定要记住!!!
sudo update-grub
这一步非常重要,是要将配置跟新到缓存中,因为运行中是将这一个配置文件更新到一个可执行文件,类似于linux中编译时产生的脚本文件,makefile是由automake等工具的配置文件导出的一样,直接在使用那个可执行文件运行的,所以此处务必将配置重新update到可执行文件中去。
OK,之后reboot系统即可
看到正常的登录界面
奇怪的是,我先后用U盘和光盘重装都出现了这个问题,修改了grub.cfg这个配置文件之后每次启动就OK了,可能是系统硬件和软件配置之间的问题,原来默认的rootdelay时间不够。
后记:
现在的这个markdown编辑器非常好用,希望能实时看到预览界面
这里给出ImageWriter.exe烧写工具的下载地址。
http://cloud.github.com/downloads/openSUSE/kiwi/ImageWriter.exe