关于装机遇到的问题

问题一 开机卡logo

1.1 原因:

显卡问题

1.2 解决方案

开机进入启动菜单,在Ubuntu选项上按“e”,进入编辑模式。为grub的编辑菜单(此处是临时修改的,不会影响grub.cfg文件),在"quiet"之后加上acpi=off

问题2 联想拯救者r720 deepin关机卡死

2.1 原因:

是因为NVIDIA显卡的原因
当deepin升级到15.7的时候,深度显卡驱动管理器会增加一个关于NVIDIA GPU驱动的解决方案,但是该方案有时不能直接切换成功,这时需要你手动安装一下NVIDIA驱动,才能正常切换。

2.2 解决方案:

开机进入启动菜单,在Deepin的选项上按“e”,进入编辑模式。在删掉“quiet“后的东西,然后加上nouveau.modeset=0。进入系统后,输入cd /etc/grub,然后输入vim grub.cfg,在删掉“quiet“后的东西,然后加上nouveau.modeset=0。输入sudo update-grub(更新grub.cfg文件),然后再看一下/etc/default/grub文件中对应的quiet是否改对了就行

上面的方案只是一次性的(对于这个牌子的机器),所以看一下永久的吧:

  • 禁用开源驱动nouveau
    sudo gedit /etc/modprobe.d/blacklist
    在文本最后添加:(禁用nouveau第三方驱动,之后也不需要改回来)
blacklist nouveau
options nouveau modeset=0
  • 关闭X-Server
    sudo service lightdm stop这会关闭图形界面,按住Ctrl+Alt+F2进入命令行界面,输入用户名和密码就行
    在命令行输入:sudo service lightdm start,然后按住Ctrl+Alt+F2即可恢复图形界面
  • 安装NVIDIA闭源驱动
    sudo apt-get install nvidia-driver
2.3 关于上面的几个文件
  • /boot/grub/grub.cfg
    此文档包含了GRUB配置选项。这是由/etc/grub.d与/etc/default/grub所生成的。若是你修改了这个档案,只要更新内核或是以指令更新grub选单(update-grub or update-grub2),之前的修改就会被覆盖掉。
  • /etc/default/grub
    此档案为使用者修改grub设定的主要档案,如果改错了,在usr/share/grub/default/里还有一份,复制过来就行。要修改这个档案,请输入sudo gedit /etc/default/grub
  • /etc/grub.d目录
    此目录放置档案,会在sudo update-grub时,合并到/boot/grub/grub.cfg中。注意这些档案名称结构,前面都有数字。数字越小的,在合并时放在越前面。grub menu要怎么更改选项的顺序?就是更改数字的大小。此外请你在这目录下输入ls -l,看一下各档案的属性,有没有看到都有x属性(可执行)?变动x属性,可以决定这个选项要不要出现在选单内。
2.3.1 关于/etc/default/grub所使用的参数

GRUB_DEFAULT
设定预设选单选项

GRUB_DEFAULT=0:以位置来设定预设选单选项。第一笔选单选项为0,第二笔为1,以此类推
GRUB_DEFAULT="xxxx":在此例中,选单中的位置不会有影响。例如:GRUB_DEFAULT=“Ubuntu, Linux 3.11.0-13-generic”。注意要完整全称。
GRUB_DEFAULT=saved:由存储预设的作业系统开机。可以用grub-reboot和grub-set-default指令来设定预设作业系统。预设作业系统不会由来自选单中的互动式选择而被设定。
sudo grub-set-default 0:以位置来设定预设选单选项。第一笔选单选项为 0,第二笔为 1,以此类推。
sudo grub-set-default "xxxx":以选单名称来设定
sudo grub-reboot 0:以位置来设定下次重启开机选项。第一笔选单选项为 0,第二笔为 1,以此类推。
sudo grub-reboot "xxxx":以选单名称来重启开机

GRUB_HIDDEN_TIMEOUT
此设定用来决定GRUB选单会有多长时间不被显示。

GRUB_HIDDEN_TIMEOUT=0:在单一作业系统电脑中,会立刻以预设作业系统开机。在只有一个作业系统状况下,这是预设的设定。加入还是要显示选单,请在这行前加上# 注销掉,并确认GRUB_TIMEOUT 设定为正整数。
GRUB_HIDDEN_TIMEOUT=X:x为秒数,空白画面几秒后,系统将会依照预设开机,不会出现选单。当萤幕是空白时,使用者可以按下任何键以显示选单。

GRUB_TIMEOUT
选单显示多久之后自动以预设作业系统开机

GRUB_TIMEOUT=10:10秒后以预设系统开机
GRUB_TIMEOUT=-1:持续显示选单,直到使用者选择

GRUB_GFXMODE
设定grub选单显示的解析度。一般是注解掉

GRUB_GFXMODE=640x480:以640x480模式显示,除非开机时选单显示就有问题,不然不要启用这个参数,据说会影响进入grub选单的时间。真的要启用,后面的数值请依照你显卡可以支援的模式填入,如1280x1024x16,800x600x24,640x480

GRUB_DISABLE_LINUX_RECOVERY
救援模式要不要显示?
你在选单中是不是都有看到救援模式(recovery mode)?假如你的电脑一向稳定,而且你不太会去动到系统,可以考虑去除 # 注解

GRUB_DISABLE_LINUX_RECOVERY=true:‘不’ 显示救援模式

GRUB_DISABLE_OS_PROBER
对其他分割区作业系统的检查
大家应该都知道sudo update-grub可以找到在其他分割区的作业系统,制成选单。但有时我就是不想要他显示到选单内,那怎麼办?那注销掉这一行就可以不检查其他分割区有没有作业系统。

GRUB_DISABLE_OS_PROBER=true:'不’检查其他作业系统

GRUB_BACKGROUND
背景影像所在。这个参数,需要自行加入。

GRUB_BACKGROUND=:以/usr/share/background/xxx.jpg当作选单背景。可以.png, .jpg, 或.tga等格式

2.3.2 /etc/grub.d目录下的档案

在这里插入图片描述00_header:设定初始显示项目 前一段介绍了/etc/default/grub的设定,就是由这一部份来负责,所以你不需要更动这个档案。
10_linux:指定目前使用中的Linux作业系统核心位置。用来建立这些linux不同核心显示在选单中的名称。若您不想要所有的旧核心版本全都显示在选单中,请移除旧核心。
30_os-prober:此档案使用 os-prober 来搜寻其他分割区的作业系统。结果将会依据此档案中的内容而放至 grub.cfg 中。此档案被划分成四个段落,代表四种作业系统类型:Windows, Linux, OSX 和 Hurd。假如你要去修改这个档案了,那你必须熟悉scripts的撰写。
41_costom:用来加入自订选单选项的样板。会在执行 update-grub 时,嵌入至 grub.cfg 中。
60_memtest86+:搜寻 /boot/memtest86+.bin。memtest86+ 主要是进行记忆体测试。你会常用到吗?假如用不到,不用移除,只要拿掉x属性即可不再出现在选单当中。请输入:
sudo chmod -x /etc/grub.d/20_memtest86+

既然不怎么需要作修改,那知道这个目录有什麼用?就像最早简介中所述:更改数字,可以改变顺序,小的在前面,大的在后面;更改x属性,可以决定要不要在选单中出现。

如,你想要windows系统出现在前面,你可以把os-prober的数字改成小,他就会出现在现有的linux前面。
如,你不想要出现memtest86+,就把x属性拿掉。

问题三 开机进入grub

3.1 grub是什么?

grub—全称为“Grand unified bootloader”的缩写,是GNU项目的一个启动加载包,GRUB是源于对宇宙的大统一理论(grand unified theories)称呼的玩笑。从此GRUB就上了科学终极理论—大统一理论GUT的豪气。因为GRUB属于GNU项目,所以也以GNU GRUB合而称呼。
在Linux系统启动过程中,GRUB在MBR(主引导加载程序或主引导记录master boot record)之后启动,故又将GRUB称为次引导加载程序。主引导程序通过分区表查找活动分区,并将处于活动分区中的次引导加载程序GRUB读取至内存运行
GRUB的作用就是负责加载所选择的内核,当有多个系统内核时,可以手动选择要启动的系统,在GRUB图形界面上有多系统选项菜单。
GNU GRUB(简称“GRUB”)是一个来自GNU项目的多操作系统启动管理器,它允许用户可在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区的不同内核,也可用于向这些内核传递启动参数。
在X86架构的机器中,Linux,BSD或其他Unix累的操作系统中GRUB,LILO是大家最为常用的。Windows也有类似的工具NTLOADER,比如我们在机器中安装了windows 98之后,我们在安装一个Windows XP,在机器启动的时候会有一个菜单让我们选择进入的是Windows98还是进入WindowsXP。这个也可以引导Linux,只是极为麻烦。

3.2 引导过程

由硬盘启动的时候,BIOS通常是转向第一块硬盘的第一个的扇区,即主引导记录(MBR)。装在GRUB和操作系统的过程中,包括以下几个步骤:

  • 装载记录
    基本引导装载程序所做的唯一的事情就是装载第二引导装载程序
  • 装载GRUB
    这第二引导装载程序实际上是引出更高级的功能,以允许用户装载一个特定的操作系统。GRUB把机器的控制权移交给操作系统。
    不同的是,微软操作系统都是使用一种称为链式装载的引导方式来启动的,主引导记录仅仅是简单的指向操作系统所在分区的第一个扇区

  • 当GRUB环境开始载入第二步引导装载程序时,它寻找自己的配置文件(menu.lst)。当找到配置文件后,它使用这个配置文件建立一个要载入的操作系统的菜单列表,然后显示引导菜单接口。如果配置文件没有被找到,或者如果配置文件不能读取,那么GRUB将载入命令行接口。菜单接口上按[e]键,对高亮菜单项中的命令进行编辑。按[c]键载入一个命令行接口。添加(加在当前行后面)用[o]键,加载当前行前(用[0]键),删除用[d]键。[enter]来执行这些命令并引导操作系统,[Esc]键放弃

设备名称:

  • Windows
    IDE硬盘用hd开始,SCSI硬盘用sd开头。软盘用fd开头.
    是从0算起。(hd0,0)表示C盘,(hd0,4)表示D盘(这里指的是第一个逻辑分区,如果D盘也是主分区,应该写成hd0,1)
    系统的第一个硬盘驱动器表示成(hd0),其上的第一个分区表示(hd0,0),也就是说对于硬盘,采用(hdx,y)的形式来表示,xy都是从0开始计数的,x表示硬盘号,y表示分区号。主分区只能有四个,所以第一硬盘上的四个主分区分别用(hd0,0)~(hd0,3)来表示。逻辑分区则从(hd0,4)开始算即第一逻辑分区用(hd0,4),第二逻辑分区用(hd0,5)来表示,依次类推。一般机子的硬盘都是一个主分区,其余是逻辑分区。因此C盘用(hd0,0),D盘用(hd0,4)来表示。光盘用(cd)表示,第一软驱用(fd0)表示。
  • Linux:
    在Linux系统中,如ubuntu,(hdx,y)中的y是从1开始计数的。第一逻辑分区用(hd0,5),第二逻辑分区用(hd0,6)来表示
3.3 解决方案

EFI+GPT模式下修复GRUB2双系统引导
原文网址
参考文章
参考文章

  1. 用Linux启动盘进入Live系统环境,在Live的终端里,创建修复GRUB2所需的文件夹:sudo mkdir -p /mnt/system
  2. 把Linux的/分区挂在到创建的文件夹(这个文章/sdb4):sudo mount /dev/sdb4 /mnt/system
  3. 把EFI分区(即ESP分区)也挂载:sudo mount /dev/sdb1 /mnt/system/boot/efi
  4. 用efibootmgr创建ubuntu的启动项:(本文的主硬盘是sdb):sudo efibootmgr -c -d /dev/sdb -p 2 -w -L ubuntu
  5. 重启,在BIOS中选择刚才创建的Ubuntu启动项,进入Ubuntu
  6. OK,已经进入本级硬盘上的Ubuntu系统了,但GRUB2修复并未完成。打开终端,重新安装GRUB2到EFI分区:sudo grub-install /dev/sda1
  7. 刷新一下GRUB2配置:sudo update-grub2

另外一种更简便的方法。用 Linux 启动盘进入 Live 系统环境,在终端中依次执行如下命令:
sudo su
mount /dev/sda4 /mnt(注意先确认自己的 / 分区是 sdaX)
mount /dev/sda1 /mnt/boot/efi
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev
mount -t devpts pts /mnt/dev/pts/
chroot /mnt
grub-install /dev/sda1
update-grub2

问题四 surface未能使用触屏解决方法

4.1 问题描述

surface是可以手触屏幕的,但是安装完deepin之后不能手触屏幕

4.2 解决方法
  • (准备)安装依赖项:sudo apt install git curl wget sed
  • 克隆linux-surface repo:git clone --depth 1 https://github.com/jakeday/linux-surface.git ~/linux-surface
  • 将目录更改为linux-surface repo:cd ~/linux-surface
  • 运行安装脚本:sudo sh setup.sh
  • 重新启动已安装的内核:sudo dpkg -i linux-headers-[VERSION].deb linux-image-[VERSION].deb linux-libc-dev-[VERSION].deb
    参考资料:https://github.com/jakeday/linux-surface

感觉我在动手实践这里很差,感觉对计算机的内部等一些东西还是不了解,装机是一个增长知识的过程,遇到各种问题的时候一定要善用搜索引擎(虽然我还是不太会用,每次都找不到一些重要的东西,zxx说我修饰的太多了)。学长说过,没有装过50个以上的都不叫装机,这个博客会继续更新,希望可以增长见识,提高实践能力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值