突破的难题:  如何在一整个根目录的分区中切出来一半用于安装windows8.1呢?

当初安装debian系统时, 由于脑残,直接把整个500G的硬盘分给了根目录 /  ,所以整个磁盘就TMD的一个主分区;   现在想再安装一个window 8.1系统,太让我为难了,几乎找了所有资料,就是没有找到一个在linux下如何把一个分区减少的方法(前提,没有使用LVM机制进行分区)。怎么办??

我想,由于我的整个500G硬盘已经用了不到50个G,我干脆直接把MBR里面的分区表修改一下应该就可以吧!! 但是,没有找到修改分区表的工具, 使用 fdisk 命令也没有修改分区大小的选项。 我灵机一动,我干脆把主分区1删了,然后再重新添加一个200G的分区就等于把原来的500G分区修改为了200G吧,反正硬盘的第一主分区开始的扇区都是一样的,保证好扇区起始相同就OK了!!修改之前需要做的一个件事:我们需要把文件系统由500G调整为200G的文件系统;

由于需要把该主分区 umount 下以后才能操作,所以需要借助一个U盘里的另一个 linux 系统完成该操作,操作如下:

1. 使用 resize2fs 命令,把文件系统由原来的500G 缩小至200G;   resize2fs 命令并不改变分区的大小;

  • 使用 e2fsck 命令检查文件系统,  e2fsck  /dev/sda1
  • 使用resize2fs命令,调整sda1上面的文件系统至200G,    resize2fs  /dev/sda1  200G

2. 使用 fdisk 命令把sda1分区删除,再添加一个210G的分区,为了安全起见,使分区比文件系统多了10G;

sudo fdisk /dev/sda
d #删除sda1分区,因为整个硬盘就一个分区,所以不用标记分区号;
Partition 1 has been deleted. Command (m for help): n #新建分区
Partition type
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5)
Select (default p): p #建立主分区 Selected partition 1
First sector (2048-976773167, default 2048): #开始值选择默认就OK;
Last sector, +sectors or +size{K,M,G,T,P} (2048-524290047, default 524290047): +210G #大小为210G Created a new partition 1 of type 'Linux' and of size 210 GiB. #最后按 w 保存退出就可以了;

安装window8.1系统:

现在已经扩展出了一半的磁盘,我们就可以在这部分安装 window8.1了,具体步骤就不说了,说几个重要的注意事项:

1. 安装时,别重新安装 主引导记录, 否则原来的linux系统都启动不起来了,后面使用grub2进行引导;

2. 安装时,如果弹出如下窗口时,解决办法:按下shift+f10 会打开命令窗口,进入到C:\windows\system32\oobe文件夹,输入msoobe回车然后输入msoobe即可进入下一步操作,但错误提示框仍然在,不用理会。

3. 安装完成进入了window8.1 桌面以后, 记得关闭 window8.1的 快速启动选项,否则会无法关机, 即使强制关机以后,再启动时,就会出现下面无法启动的问题。 如果真的出现了这个问题的话,反正吧,借助硬盘上的MBR引导它是启动不起来的,你再怎么修复系统所在分区的分区引导记录也不管用, 或许你可以使用老毛桃制作一个U盘启动盘可以启动起来;

在linux系统下,使用grub2 对 window8.1进行分区引导:

(更多参考 grub2.02的文档:https://www.gnu.org/software/grub/manual/grub/grub.html

在我的电脑上, 使用的是 grub2.02版本, 进入 /etc/grub.d/目录下,我们会发现有如下文件(版本不一样,会不相同的,我只说我的版本):

其实呢, 30_os_prober文件就是一个操作系统的嗅探配置文件,它可以自动地去探测硬盘上支持的操作系统, 所以,安装完了windows以后,只需要执行 sudo update-grub 命令,它就会自己搜索并配置相应的操作系统的引导文件;

当然,我们也可以自己写 window8.1的引导配置文件,打开40_custom文件,里面内容如下:

所以,我们只需要在下面写上window8.1的引导配置文件就好,然后执行 sudo update-grub 命令更新:

其中, insmod chain 表示链式引导, insmod ntfs 表示引导的操作系统的文件系统类型为nfts,    (hd0,3) 表示我的window8.1系统在第一块硬盘第3个分区上, chainloader +1 表示从所在分区的第一个扇区开始;

最后安装完成的启动界面:

记录一次在安装双系统的过程(先有debian, 后加windows 8.1)的更多相关文章

  1. Win7下安装双系统Centos,并修复Centos引导加载程序安装在U盘上的问题

    1.使用U盘安装Centos时,磁盘分区划分要注意:系统(包含Win7)只能4个主分区,所以只能在删除一个主分区或者在扩展分区的空闲分区内建立目录. 2.Centos在安装步骤的最后,引导加载程序的选 ...

  2. U盘启动盘 安装双系统 详细教程

    U盘启动盘 安装win7+linux双系统 最近在看鸟哥的linux 私房菜 ,看到多重系统那部分,自然的安装多重系统的激情由此而燃.在网上看了很多资料,感觉都不全.经过艰辛的摸索,终于被我发现了一个 ...

  3. Windows 10+Ubuntu 16.04在MBR分区上安装双系统之后启动菜单的System Setup选项提示:can't find command "fwsetup"

    背景: 硬盘分区方式:MBR 硬盘容量256,Windows 100,Ubuntu 156,其中主分区安装的是Windows,Ubuntu安装在逻辑分区上,文件系统为Ext4,整个Ubuntu就挂载在 ...

  4. win7+centos6.5安装双系统

    前言:之前在琢磨怎么安装双系统 倒腾了两天终于给装上了 使用软件 镜像:CentOS-6.5-x86_64-bin-DVD1.iso 开机引导软件 easybcd2.2 u盘制作软件 USBWrite ...

  5. 记录一下l联想Y7000安装双系统(win10+ubuntu16.04)

    单位新配的联想拯救者Y7000,感觉很不错哈,先上一张图. 说实在的,装这个有些小坑,我最开始是直接在原装win10上去装双系统的,结果死活装不上,还把原装win10给折腾没了,哈哈,好逗,以前装双系 ...

  6. ubuntu server 14.04 LTS下搭建LAMP环境之最详细笔记之一U盘安装双系统

    前言: 一直在WIN上使用PHP,不喜欢用WAMP,每次都是手动在windows配置环境,偶尔有一次装了小红帽玩了两天,感觉不是很习惯就换了回来,过了没几天见讨论LAMP环境,于是安装了ubuntu的 ...

  7. 安装双系统window +ubuntu

    在网上,试过很多种方法,有U盘制作安装,感觉好复杂,这边有一个简便的方法就是使用Ubuntu 的 wubi安装. 一直想安装双Ubuntu 系统很久了,可是以前在大学时期的时候一直努力,好像都不行,这 ...

  8. MC700 安装双系统

    2011年买的MBP MC700给老婆用了一段时间后,老婆还不习惯不了Mac OS或是虚拟机,要求必须给安装windows,无奈时隔四年后,只能重新尝试在MC700上用bootcamp安装Window ...

  9. 关于笔记本安装双系统windows and linux

    ps1.安装完成后,补充下如何设在win7为默认启动系统, 大家也都知道,在linux 运行当软件都是以配置文件来设置参数当,当然grub菜单也不例外, 修改菜单可以进入grub.conf [root ...

随机推荐

  1. bzoj 3811: 玛里苟斯

    3811: 玛里苟斯 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 190  Solved: 95[Submit][Status][Discuss] ...

  2. PHP文本处理 中文汉字字符串 转换为数组

    在PHP中我们可以通过str_split 将字符串转换为数组,但是却对中文无效,下面记录一下个人将中文字符串转换为数组的方法. 用到的PHP函数 mb_strlen — 获取字符串的长度 functi ...

  3. Python3面向对象基础

    面向对象概述 面向对象 面向对象的世界,引入了对象的概念,对象具有属性:数据,对象具有过程或者方法:成员函数.成员函数的作用就是处理属性. 例子 对象:Car 属性:fuel_level, isSed ...

  4. Redis集群方案总结

    Redis集群方案总结 Redis集群方案总结Codis其余方案Redis cluster 目前,Redis中目前集群有以下几种方案: 主从复制 哨兵模式 redis cluster 代理 codis ...

  5. iOS开发-模板方法模式

    模板方法模式定义一个操作中的算法的骨架,而将步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤.模板方法模式是由子类决定实现算法中的步骤,工厂方法由子类决定实现哪一 ...

  6. ROS actionlib学习(二)

    在ROS actionlib学习(一)中的例子展示了actionlib最基本的用法,下面我们看一个稍微实际一点的例子,用actionlib计算斐波那契数列,并发布反馈(feedback)和结果(res ...

  7. Series转化为DataFrame数据

    out=groupby_sum.ix[:'to_uid','sum(diamonds)']使用ix在提取数据的时候,out的数据类型通常为<class 'pandas.core.series.S ...

  8. 在Razor中输出Html的两种方式

    Razor中所有的Html都会自动编码,这样就不需要我们手动去编码了(安全),但在需要输出Html时就是已经转义过的Html文本了,如下所示: @{ string thisTest = "& ...

  9. 解决《UNIX环境高级编程》(APUE)示例代码的编译问题

    转自 http://cunsheng.sinaapp.com/?p=360 APUE中示例很多, 把这些源码拿来跑跑调调对学习理解有着莫大的帮助, 随书网站就提供了源码下载, 不过我自己在Linux和 ...

  10. Effective Java 第三版——54. 返回空的数组或集合不要返回null

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...