Windows 10/7与Ubuntu 18.04双系统安装

2019/7/13 18:26 下午 posted in  技术 comments

本文涉及配置主要是深度学习方向的,如有个性化需求可以阅读参考文献以及自行再搜索文章尝试。

最近需要学习深度学习的同时混一混Kaggle社区,所以部署Kaggle Docker以便环境上一致,因此需要安装Ubuntu以便环境的部署。因此需要在已有Windows 10的带有GPU台式机上安装双系统来部署,为了方便以后有使用需求,现简单总结下双系统的安装情况。

注意:本文首次撰写于2019-07-13,最近修改时间为2019-07-13,请注意相关程序的可用性与安全性。

本文也在Windows 7下进行安装并通过,也可通过此文进行Windows 7+ Ubuntu 18.04的安装。

安装准备

安装需要准备镜像、刻录镜像软件和容量可观的U盘。

  1. 镜像下载:点击此处可以直接下载Ubuntu 18.04 LTS
  2. 刻录镜像软件软件:此处选用UltraISO(软碟通)。当然有其他的也可以。
  3. U盘:只要别拿出个几百M一两G的U盘,其他都能用。U盘刻录需要格式化,请使用空闲U盘。

软碟通刻录镜像至U盘,在Windows下以管理员方式打开后,打开镜像文件,选择启动-写入硬盘映像,选择插入的U盘,点选入即可。

如果操作有问题请自行搜索解决方法,本文不再赘述。

安装过程

我这里以一块新的SSD进行的安装,为保持一致,SSD已通过PE转为UEFI引导,如果是同一块硬盘的未分配存储也是可以的。

BIOS引导进入安装U盘,选择“Install Ubuntu”,然后选择语言、测试键盘。如果是有无线模块的电脑,这几步之后会让你选择是否连接无线,我们可以暂时不连接。

1121563028394_.pi

1111563028393_.pi

1101563028392_.pi

1091563028391_.pi

在更新和其他软件页面,选择正常安装,并且不要勾选“为图形或无线硬件,以及其他媒体格式安装第三方软件”。

1131563028959_.pi

接下来就是安装类型了,如果机器已经有预装Windows的情况下会提示如图所示内容。这里我们选择其它选项。

1081563028390_.pi

注意:在本文的参考文献1中,博主认为不应该选择此项而应该选择第一项,并且吐槽别人选择其它选项是不对的。其实这里的情况是,如果选择第一项,那么Ubuntu将根据探测引导结果通过程序自动进行挂载点的选择与引导的添加,这与我们需要个性化定制挂载点的需求相违背。而其它选项中需要指定引导挂载点为存量系统(这里是Windows 10)已有的引导挂载点才可以,下文将详细说明。

在下面的挂载点,我们根据磁盘的情况进行挂载。选择空闲的分区(一般肉眼就能看出是哪块盘),然后双击或者点击左下角加号,输入大小、分区类型和挂载点即可。

这里的挂载点就有讲究了。如果各位搜网上各种说法的话,什么swap啊boot啊挂载点各种出来了。但是,都9102年了,GPT逐步替代MBR的时代都过去七八年了,UEFI引导淘汰BIOS引导都成为了主流,笔记本电脑动辄都16G内存了,为什么各种教程还是写/boot/swap啊一堆挂载点?除了浪费空间还是浪费空间!

对于挂载点我的建议是:

  1. 内存如果超过16G,且不是作为服务器,只是作为个人用途的,swap无需设置。内存如果小于4G,可以考虑设置内存相同大小的swap。内存如果在4G-16G区间,根据需求自行设定大小或无需设定。
  2. BIOS引导需要设定500M-1024M左右的boot挂载点,UEFI引导不需要设置boot挂载点。
  3. 独立SSD硬盘安装Ubuntu可设定200M的EFI引导挂载点。若已安装Windows也可以不设定EFI挂载点,只在设定最下面“安装启动引导器的设备”选到Windows Boot Manager分区即可。
  4. /home挂载点和/挂载点需要设定,根据自己情况设定。例如我需要未来部署Kaggle Docker,所以设定/home挂载点15G,其余空间全部分配给/挂载点。

分区及挂载点设置好后,记得最下面的“安装启动引导器的设备”选择正确,设定EFI引导挂载点的需要选择对应分区挂载点,未设定的请选择列表中标示“Windows Boot Manager”的分区挂载点。否则安装后系统找不到引导无法启动Ubuntu。

屏幕截图 2019-07-13 21.44.01

上图摘自网络

接下来就是选择时区和设定主机名和用户名啦,没啥特别注意的按照自己需求个性化设定就好啦。

1071563028389_.pi

1061563028388_.pi

然后就是重启,选择Ubuntu就可以进入系统咯~

安装结束

  1. 双系统切换:

    先设定下/etc/default/grub

    sudo vim /etc/default/grub
    

    打开后,修改GRUB_DEFAULT字段,这个是修改默认启动项的,正常应该是GRUB_DEFAULT=0。即默认是Ubuntu启动。如果我们想改成默认Windows,可以在启动时观察grub中Windows启动项在哪一个记一下,然后改一下就好了。比如我的Windows启动项在grub启动菜单中显示为第3个,那么这里改为GRUB_DEFAULT=2即可。

    当然,还有个特殊的选项叫GRUB_DEFAULT=saved,按照如下设置后,每次你手动选择的启动项都会设置为下次开机默认的选项:

    GRUB_DEFAULT=saved
    GRUB_SAVEDEFAULT=true
    

    设置好后,运行如下命令写入grub使设置生效:

    sudo update-grub
    

    如果有远程需求的,可以按照如下经验来做:

    1. 设置GRUB_DEFAULT=saved
    2. 编辑个脚本放在用户目录下并授予执行权限:

      #!/bin/bash
      sudo grub-reboot 2
      sudo reboot

      需要切换到Windows的时候就运行这个脚本就行了。

  2. 开启远程SSH:

    查看当前的ubuntu是否安装了ssh-server服务。默认只安装ssh-client服务。

    dpkg -l | grep ssh
    

    若没有``,则说明没有安装ssh-server。安装ssh-server服务

    sudo apt-get install -y openssh-server
    

    确认ssh-server是否启动了,默认安装之后就会启动:

    ps -e | grep ssh
    

    如果看到sshd那说明ssh-server已经启动了,如果没有则可以运行如下命令启动:

    sudo /etc/init.d/ssh start或sudo service ssh start
    

    ssh-server配置文件位于/etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222

    把配置文件中的PermitRootLogin without-password在最前面加一个#,把它注释掉,再增加一句PermitRootLogin yes

    然后重启SSH服务:

    sudo /etc/init.d/ssh stop 
    sudo /etc/init.d/ssh start
    

问题解决

  1. 安装完之后,我的电脑出现了如果上一次登录过Ubuntu的话,再进入Windows 10发现时间出现问题。经过搜索后发现是Ubuntu和Windows 10对BIOS时间的解析理解不同。具体解决方案请点击《解决Windows 10与Ubuntu 18.04双系统机器上Windows时间同步有误的问题》

参考文献

  1. Windows10+Ubuntu18.04双系统安装成功心得(理清网上杂乱无章的教程)
  2. win10下安装Ubuntu16.04双系统
  3. win10下Ubuntu 双系统安装(解决关机卡死问题和WiFi问题)
  4. Windows + Ubuntu 16.04 双系统安装详细教程
  5. ubuntu开启SSH服务远程登录