至少需要两个U盘,一个制作成ubuntu启动盘,一个制作成windows 7启动盘,制作方法可用rufus,网址http://rufus.akeo.ie/,还可用UltraISO,推荐前者。都是把操作系统的镜像写入U盘,事先要把U盘中重要的资料备份出来,U盘在制作过程中会被格式化。,windows系统如果是恢复ghost镜像,可以制作winpe启动盘。
现在安装双磁盘的比较多,如果是两个系统分别装在两个不同磁盘上,一种最简单办法是分别把两个磁盘都做成带活动分区的磁盘,分别装两个系统,引导时通过修改启动顺序来引导这两个系统,适用于不常切换系统的人使用,安装非常简单,用起来有些小麻烦。当然也可以制作成双启动,和下面一块磁盘多分区情况类似。
这个非常简单,用windows优盘先安装windows系统,成功后,再用ubuntu优盘安装ubuntu系统,按部就班操作即可。前提是在一块磁盘的情况下需要给两个系统都准备大小合适的分区空间。
安装ubuntu过程中看不到磁盘,无法安装,进入bios后没有硬盘控制器,譬如ideapad701s ,这种情况需要对这个操蛋的bios进行升级,即重新刷bios,到官方网站查找,必须下载正确的版本,和机器必须配,刷bios有风险,要慎重!!!!,刷过bios后再进入bios就可以看到磁盘控制方面的设置,这种型号改原来的raid模式为AHCI模式。ok。
问题又来了,win10无法正常启动了,访问不了硬盘了,别慌,重新进入bios,修改回raid模式,重启系统,又可以进入win10了,但仍然无法安装ubuntu,解决办法是,设置进入进入最小安全模式,在这种模式下进入bios修改磁盘控制器,重启后让系统在最小安全模式下修复,(安全模式是不行的),然后再改回正常模式。操作如下;
bcdedit /set {current} safeboot minimal
bcdedit /set safeboot minimal
bcdedit /deletevalue {current} safeboot
windows系统安装ubuntu很容易,但在ubuntu下如何安装windows构成双系统呢?下面重点谈谈这种情况。
系统环境:ubuntu16.04LTS,安装windows 7-64位。
为了保险起见,还是要对重要的资料进行以下备份。linux的系统备份很简单,如下所示:
(资料不重要可以省去这一步)
我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Windows不同,Linux不会限制root访问任何东西,你可以把分区上的所有东西都扔到一个TAR文件里去!
$ sudo su
# cd /
# tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys --exclude=/media /
让我们来简单看一下这个命令:
# tar cvpjf backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /
文件切割模式分为两种:文本文件和二进制模式。
文本模式只适用于文本文件,用这种模式切割后的每个文件都是可读的。文本模式又分为两种:按最大文件大小切割和按文本行数切割。
split -C 50k log.log splog
将文本文件log.log按每块最大50k的大小进行切割,不打碎行。输出文件名类似splogaa, splogab……
split -l 100 log.log splog
每个分块100行,不考虑大小。日志分析时应该有用。
split -b 50k log.log splog
每个分块(当然,最后一个不保证)大小都是50k,基本不可读。任何类型文件都可以用这种切割模式。
不管用什么方式切割,合并方法不变。
cat splog* >newLog.log
split 参数:
-a:指定输出文件名的后缀长度,默认为2个(aa,ab...)
-d:指定输出文件名的后缀用数字代替
-b:指定输出文件的最大字节数,如1k,1m...
-C:指定每一个输出文件中单行的最大字节数
-l:指定每一个输出文件的最大行数
在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!
接着上面的例子。切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。
在 Linux中有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。你还可以用一个命令把Linux系统中的所有文件干掉,当然在这里我不打算给出这个命令!
使用下面的命令来恢复系统:
# tar xvpfz backup.tgz -C /
如果你的档案文件是使用Bzip2压缩的,应该用:
# tar xvpfj backup.tar.bz2 -C /
注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。
执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。
恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:
# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
等等,当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了!
重要的一点是,如果恢复的电脑不是原来的电脑,需要在待恢复的电脑上有和备份的系统版本一至的系统,最好重新装个,然后把/boot/,initrd.img,vmlinuz 备份到其他位置,待恢复完后,再把这几个恢复到原来位置,以防止uuid不一致造成不能正确引导。
ubuntu和windows应该安装在硬盘的两个不同分区,如果你有空闲的分区,可略过下面一大段。如果当初将ubuntu安装在一整块硬盘上,安装windows时需要在硬盘上为它腾出一块地方。可以使用pe带的磁盘分区工具来调整磁盘分区大小,或者使用ubuntu系统的分区工具来调整,如下所示:
sudo gparted
关机后插上windows7的启动盘,与打开ubuntu启动盘类似,在新分配的分区安装windows7系统。
安装完成后,会自动进入windows系统,但是可能无法正常进入grub启动菜单;如果是ghost恢复的系统是不会自动进入windows系统的,后面再说这种情况;即不能多引导,需要修复启动项。
关机后插上ubuntu启动盘,并进入ubuntu桌面,终端输入
sudo fdisk -l (小写的L)
输出内容:
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x04bcd6c6
设备 启动 Start 末尾 扇区 Size Id 类型
/dev/sda1 * 2048 234041343 234039296 111.6G 83 Linux
/dev/sda2 234043390 250068991 16025602 7.7G 5 扩展
/dev/sda5 234043392 250068991 16025600 7.7G 82 Linux 交换 / Solaris
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x853aba59
设备 启动 Start 末尾 扇区 Size Id 类型
/dev/sdb1 * 2048 167776255 167774208 80G 7 HPFS/NTFS/exFAT
/dev/sdb2 167776256 976773119 808996864 385.8G f W95 扩展 (LBA)
/dev/sdb5 167778304 976773119 808994816 385.8G 7 HPFS/NTFS/exFAT
我这是两块磁盘情况,可以看出都做成了启动盘。
其中,sda是第一块磁盘,sdaX是我的ubuntu分区;sdb是第二块磁盘,sdaX是win7分区,每个人可能情况不同,请自行辨认。/dev/sdb1划分了80G安装win7。
接着,终端输入
sudo -i (得到root权限,无需再输入密码,便于下面操作)
mkdir /media/tempdir (用来挂载sda1的,就是创建一个tempdir,名字什么的自己定)
mount /dev/sda1 /media/tempdir (将sda1挂载在tempdir下)
grub-install --root-directory=/media/tempdir /dev/sda (重新安装grub2到硬盘的主引导记录(mbr))
操作成功出现:Installation finished.No Error Reported.
重启后就可以进入原来的ubuntu系统,但是windows暂时无法引导,下面就是更新grub2让它可以引导windows7。进入到系统后打开终端,输入
sudo update-grub2
update-grub或者update-grub2,根据grub版本选择,这个重新生成了grub.cfg.
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-3.13.0-37-generic
Found initrd image: /boot/initrd.img-3.13.0-37-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda2
done
重启电脑,即可发现win7引导菜单,可正常引导系统。
GRUB是大多数Linux系统默认使用的引导程序, 可以通过启动菜单的方式选择进入不同的操作系统(如果有的话).
当 “/boot/grub/grub.conf” 配置文件丢失, 或者关键配置出现错误, 或者MBR记录中的引导程序遭到破坏时, Linux主机启动后可能只会出现“grub>”的提示符,无法完成进一步的系统启动过程.
error : unknow filesystem
grub rescue>
这表示你的grub2的配置文件损坏, Grub找不到Ubuntu系统的引导项. 从而进入修复模式了(grub rescue), 也称救援模式。在救援模式下只有很少的命令可以用: set, ls, insmod, root, prefix
命令 描述
set 查看环境变量,这里可以查看启动路径和分区
ls 查看设备
insmod 加载模块
root 指定用于启动系统的分区,在救援模式下设置grub启动分区
prefix 设定grub启动路径
具体修复步骤如下:
grub rescue> ls
列出磁盘分区
(hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos2) (hd0,msdos1
就是寻找你的Linux系统是装在以上哪个分区里
grub rescue> ls (hd0,msdos1)/
grub rescue>set //查看当前设置
grub rescue>root=(hd0,msdos5)
grub rescue>prefix=/boot/grub //grub路径设置
grub rescue>set root=(hd0,msdos8) //修改设置
grub rescue>set prefix=(hd0,msdos8)/boot/grub
grub rescue>insmod normal //启动normal启动
grub rescue>normal
之后你就会看到熟悉的启动菜单栏了。
进入系统启动选项界面后还是进不去, 因为你还没有真正的修改grub, 这个要到ubuntu里修改进入系统启动项界面后,按C进入命令行模式
grub >set root=hd0,msdos8
grub >set prefix=(hd0,msdos8)/boot/grub
grub >linux /vmlinuz-xxx-xxx root=/dev/sda8 //里边的xxxx可以按Tab键,如果有acpi问题,在最后加一句acpi=off
grub >initrd /initrd.img-xxx-xxx
grub >boot
如果grub配置没有大的损坏,就可以正常进入系统了。如果以上方法不能启动系统,需要重建一下grub请看下面。
其实前面的操作, 已经恢复了引导项了, 我们进入Ubuntu后, 可以更新下GRUB引导项, 在终端里运行
sudo update-grub
sudo grub-install /dev/sda
/dev/sda是激活的引导磁盘,对照实际情况。
前一种方法的前提是Grub引导依旧可以使用, 只是丢失了Ubuntu的引导项, 而如果我们的Grub都已经损毁或者丢失, 则需要使用光盘或U盘进入一个可以使用或者修复的Linux系统来完成GRUB的重新安装。
把系统光盘放入光驱或U盘, 重启 Linux 系统. 系统启动时按”F2”键, 在”boot:” 提示符下输入 “linuxrescue” 后”回车”, 进入”急救模式”引导光盘中的Linux系统。
之后依次按回车键接收默认的语言、键盘格式,提示是否配置网卡是一般选择“NO”,然后系统会自动查找硬盘中的Linux分区并尝试将其挂载到”/mnt/sysimage”目录(选择”Continue”确认并继续).
接下来需要特别注意 : 当出现是否初始化磁盘的警告窗口时,一定要选择”NO”, 以免对硬盘数据造成进一步损坏. 最后选择”OK”确认后将进入到带”sh-x.x#”提示符的Bash Shell环境。
如果对这种方式不是很放心,也可以在启动时选择“试用ubuntu”,即从U盘或光驱加载系统,不从硬盘启动。
如果MBR扇区引导程序没有被损坏, 确认待修复的Linux系统分区的挂载情况, 并重修 grub.conf文件,不会修改,看下面。
如果MBR扇区引导程序被损坏,即使重建grub.conf配置文件后仍然无法启动系统。这时可以在急救模式的shell环境中使用grub-install重新安装grub,第一种情况下如果不会修改grub.conf文件, 可以使用这种方法处理。具体操作方法见上面修复启动项。
一般情况下,有人可能直接修改GRUB配置文件“/boot/grub/grub.cfg”,但使用“sudu vim /boot/grub/grub.cfg”发现提示这个是系统自动生成的文件,不建议直接编辑,而应该到“/etc/grub.d”和“/etc/default/grub”去修改。
“/etc/grub.d”是操作系统菜单目录,一般由系统生成,我们无需修改,接下来就是修改“/etc/default/grub”文件了。使用“sudo vim /etc/default/grub”命令打开该配置文件。
其中的“GRUB_DEFAULT=0”就是设置的默认启动项了。GRUB启动项是按照启动菜单依次使用数字进行索引了,起始数字为0。结合前面的系统启动菜单,我们可以看到,Windows8的启动项在第5项,因此这里我们就需要修改为4(因为第一项是从0开始的)。
修改完成,保存退出之后,还需要执行一下“sudo update-grub”来重新生成GRUB启动配置项。
到此就大功告成了,重启计算机看一下效果吧。默认启动项成果被切换到“Windows8”了。同样的方式,如果需要,还可以重新将默认启动项切换到任何需要的启动菜单项上的。