第一章 安装WIN10&Ubuntu双系统二三事
本文主要就个人电脑安装双系统碰到的问题加以总结,以及记录实践中碰到的问题和有效的解决方案,不涉及服务器相关事宜。
提示:以下是本篇文章正文内容,下面案例可供参考
一般有两种方法,一是使用虚拟机,一是安装双系统。使用虚拟机的好处是占用资源少,相对简单方便,不会碰到实装时出现的一些兼容性问题,使用户的注意力能更好地集中于使用linux本身,并且可以创建多个linux环境从而可以使用集群。而安装双系统属于实装,会消耗更多硬件资源,会碰到很多兼容性方面的问题,锻炼使用者在实践中发现问题和解决问题的能力,美中不足的是,这种方法无法创建更多linux环境,因而不能使用集群操作。
我的选择是,先采用安装双系统的方式搭建linux环境,因工作原因,对linux系统本身相对熟悉,但对安装和维护linux系统尚无经验,安装双系统正好可以弥补该项不足。以后再安装虚拟机,仅仅为了玩转虚拟机。
参考文章:https://blog.csdn.net/Lee_01/article/details/82973662?spm=1001.2014.3001.5506
最开始采用以下方式做了引导盘,第一次进入系统是没问题的。
该处使用的url网络请求的数据。
参考文章:Windows + Linux 双系统的安装_linux windows双系统_—叶丶知秋的博客-CSDN博客
后面WIN10系统更新之后Ubuntu出现了不兼容的问题,主要是和NVadia的显卡不兼容,直接导致系统进不去,使用引导盘重装都不好使。查阅资料,网上有人说可能是引导盘的问题,于是尝试不换Ubuntu官网上下载的ISO镜像文件,仅仅修改制作引导盘配置来解决问题,顺便排除是否是镜像文件的问题,成功解决系统重装的问题。
参考文章:https://blog.csdn.net/inthat/article/details/128270661?spm=1001.2014.3001.5506
家用电脑只需要分根目录、/home、/boot和/swap,其中根目录和/home目录一定要大,第一次装只给根目录开了10G,随便装两个软件就报空间不足,休眠之后无法进系统,报ACPI错误(可能是根目录和swap空间不够导致的),网上的装机教程要看发布时间,比较早的电脑内存少,磁盘空间也少,已经不适合目前的情况了,磁盘空间要根据自己电脑的实际情况酌情扩大。
第二次装Ubuntu,开辟空间容量如下:
根目录:30G;/home:30G;/boot:1G;/swap:20G(内存16G,ubuntu官方推荐)
参考文章:安装Ubuntu Linux系统时硬盘分区最合理的方法_ubuntu磁盘分配_最小森林的博客-CSDN博客
安装完整个系统(典型安装),装了输入法和杀毒软件,系统自带python、浏览器和一些小软件,根目录下的文件(除了/home和/media这些)有18G大小。/swap相当于虚拟内存不可见,/media下面可以看到外接的盘,比如双系统的WINDOWS下挂的几个盘以及插入的U盘。后面Ubuntu系统产生的log这些也会放到根目录下,所以根目录开30G还是有道理的。Tar之后,11G左右,除去不该tar的几个目录。
Swap这次还是开的20G,怕出幺蛾子,下次再重装ubuntu系统,改成4G试试。
Swap开20G后,Ubuntu休眠之后依然无法唤醒,该问题还没有解决。
磁盘分区结束,就可以装Ubuntu系统了。
参考文章:Windows + Linux 双系统的安装_linux windows双系统_—叶丶知秋的博客-CSDN博客
由于之前的磁盘分区不合理,根目录只给了10G导致系统用过几次之后就进不去了。重新装系统的时候碰到了ACPI BIOS ERROR(bug):Could not resolve symbo的问题,U盘启动卡在此处黑屏,无法重装系统。规避方案如下参考文章:
U盘启动装Ubuntu系统时启动不了,出现黑屏问题_ubuntu启动盘无法启动_奕星星奕的博客-CSDN博客
系统装好后发现,ACPI BIOS ERROR依然存在,只是规避之后不影响开机了。继续寻找解决方案,有人说是BIOS不能很好支持ACPI功能导致的,解决办法是在BIOS中关闭ACPI功能,但进入BIOS之后发现该功能没有开放给用户,如果要关闭该功能要刷BIOS,刷BIOS有风险,且该问题暂未造成实质性影响,所以暂时挂起该问题。
和显示相关的一般是显卡的问题,问题解决方案基本如下面的文章所示。
参考文章:Ubuntu 14.04安装Nvidia显卡驱动以及查看显卡驱动_ubuntu 14 设备驱动 位置_John9ML的博客-CSDN博客
我安装的Ubuntu是最新版本20.4.1,并且各人的电脑配置不太一样,所以碰到的问题也不太一样。我的方法和碰到的问题及解决方案如下:
最重要的写在最前面,关闭电脑的secure boot,这个太关键了,这个不干掉,我后面试了网上能找到的各种方法,显卡驱动一概装不上。开机F2进BIOS设置,disable掉这个选项。
sudo chmod a+x xxx.run
其中,xxx.run是下载好的显卡驱动,要修改成可执行文件。
sudo gedit /etc/modprobe.d/blacklist.conf
gedit是打开linux的图形界面下自带编辑器的命令。如果自己已经安装了vim或者其图形界面形式gvim,可以用这些已安装的编辑器打开。
在blacklist.conf文件最后加上:
blacklist nouveau
linux系统一般默认安装的是开源的nouveau显卡驱动,它与nvidia显卡驱动产生冲突,所以安装nvidia显卡驱动时需要先屏蔽nouveau显卡驱动。命令blacklist后面的nouveau是参数。下面这篇文章写得不错,原理讲得很清楚。
linux中blacklist.conf解读_滴水穿石孙杰的技术博客_51CTO博客
sudo apt-get --purge remove xserver-xorg-video-nouveau
删除nouveau相关的包,--purge表示包括其配置文件等。
关于linux的X服务,下面会有涉及。
sudo apt-get --purge remove nvidia-*
事实上,我的电脑里原始状态下与nvidia相关的软件一个也没有。
sudo init 3
这一步操作完,电脑从Ubuntu的图形界面退出,进入命令行操作。
sudo /etc/init.d/lightdm stop
这条命令关掉了lightdm桌面,进入DOS界面。
lightdm全称Light Display Manager,是轻量的Linux桌面显示管理器,可以理解为一个支持各种开发界面的通用性平台,通过合适的插件支持所有显示管理器,是界面无关性的,并且没有传统Ubuntu的GNOME桌面标准的GDM那样冗余,代码复杂度低,历史遗留问题少,速度快。
再按Ctrl+Alt+F3进入tty,这时候需要用户名和密码登录。
TTY是由虚拟控制台、串口以及伪终端设备组成的终端设备,全称TeleTYpe。
sudo su
cd /home/sally 每个人不一样,如果已经在工作目录下了,就不需要这一步了
sudo ./Downloads/NVIDIA-Linux-xxxxx.run -no-x-check -no-nouveau-check -no-opengl-files
我的驱动放在Downloads下面,所以在这里找。
-no-x-check:安装驱动时关闭X服务,本地安装,不需要与其他机器交互
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件,否则会会出现循环登陆的问题
安装过程中,碰到了如下问题:
(1)没有安装gcc安装完之后,据说可以用这行命令回到图形界面。
sudo /etc/init.d/lightdm stop
我当时没有尝试,直接reboot了,改天可以尝试以下。
命令随时可用,无论是否装上了驱动。
lspci | grep -I nvidia
lspci命令用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息。现在主流设备如网卡存储等都采用PCI总线。这条命令用于显示和NVIDIA相关的PCI总线及设备信息。
(2)查看NVIDIA显卡驱动版本
sudo dpkg --list | grep nvidia-*
如果没有装或者没装上nvidia相关驱动,就不会反馈任何东西。正确安装之后,会反馈驱动版本。
dpkg命令用于查看软件安装到什么地方。
(3)查看NVIDIA显卡
nvidia-smi
如果显卡驱动没有安装好,会反馈NVIDIA-SMI has failed …的信息,就要卸载了重新装。
解释相关参数含义:
GPU:本机中的GPU编号
Name:GPU 类型
Persistence-M:
Fan:风扇转速
Temp:温度,单位摄氏度
Perf:表征性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能
Pwr:Usage/Cap:能耗表示
Bus-Id:涉及GPU总线的相关信息;
Disp.A:Display Active,表示GPU的显示是否初始化
Memory-Usage:显存使用率
Volatile GPU-Util:浮动的GPU利用率
Uncorr. ECC:关于ECC的东西
Compute M.:计算模式
Processes 显示每块GPU上每个进程所使用的显存情况。
参考资料:
https://blog.csdn.net/C_chuxin/article/details/82993350?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167750686916800180616826%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167750686916800180616826&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-82993350-null-null.142^v73^wechat_v2,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=smi&spm=1018.2226.3001.4187
我尝试了以下两个帖子的办法。
(1)关掉代理服务器(我尝试后依然无法稳定连接WIFI)
安装linux系统后出现电脑无法使用wifi情况_linux安装完成后无法连接wifi_我的半个苹果的博客-CSDN博客
(2)诊断网络自动修复(只要先启动Ubuntu再重启进入WIN10就无法自动连接WIFI,只能修复之后连接WIFI)
linux刷win10后wifi用不了,win10无线网络不显示怎么办_weixin_39752157的博客-CSDN博客
上述两种方法都尝试了,目前WIN10还是无法稳定连接WIFI,先进入Ubuntu再重启进入WIN10后,总是要手动修复网络,才能连上WIFI。不稳定的问题尚未解决。
参考文章:
解决Windows10与Ubuntu16.04双系统时间不一样问题!(亲测,真正的正确方案)_孤旅青山迷情人的博客-CSDN博客
处理之前,我的WIN10时间时好时坏,坏的时候比Ubuntu晚8小时,原因如上述。在WIN10下使用上述帖子的第二种解决办法,问题得以解决。注意两点:
(1)cmd要用管理员身份打开,否则命令会提示没有权限执行;
(2)命令里有些字母和空格要注意:字母I和L的小写要分清,根据命令本身含义确定
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
(3)命令执行完成后重启电脑才能生效
另外,我在Ubuntu下尝试了方法一,没效果,初步判断哪个系统出问题,就在哪个系统里解决,我装完双系统是WIN10时间不对,所以就在WIN10里解决。但值得注意的是,上述帖子里的命令,可能是作者在word里面敲的,--被自动更正为破折号了,在Ubuntu下man了命令自己看。正确的命令如下:
timedatectl set-local-rtc 1 --adjust-system-clock
该问题尚未解决,swap空间已按官方推荐留了20G,有点浪费,但还是无法从休眠状态退出。不影响使用,该问题挂起。原本也不需要休眠模式,改天准备尝试在不影响系统的前提下,缩减swap空间到4G,把休眠模式禁掉。
如果是新手,建议使用虚拟机的方式安装Linux系统,碰到的兼容性问题会少一些,可以更聚焦于Linux系统本身。