zoukankan      html  css  js  c++  java
  • win10 + Ubuntu 双系统,重装后的引导修复,时间调整和启动项调整

    ▶ 原先为 win10 + Ubuntu 双系统,使用 grub2 作引导,在重装了 win10 (升到了1803)后系统重写了引导,启动项里找不到 Ubuntu,需要修复。

    ● 参考【https://blog.csdn.net/piaocoder/article/details/50589667】

    ● 装一个 Ubuntu 的安装 U 盘,从U盘启动,Try Ubuntu without installing,进入以后设法联网

    ● 安装 boot-repair

    $sudo su
    ——输入密码
    
    #add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    ——各种确定
    
    #apt-get install -y boot-repair && boot-repair
    ——各种确定

    ● 看到窗口如下,点击 Recommended repair,或者在终端中输入 #recommended repair  开始修复。中间根据软件提示,可能需要在终端输入命令,删除和重装某些软件。

      

    ● 修复完成,重启以后就能以 grub2 的界面选择启动项目了。

    ▶ 时间同步,大意是 windows 将 bios 时间看做当地(Local)时间,而 Linux 将起看做 UTC 时间(然后再加地区偏移),在参考答案中有在 windows 中修正的,也有在 Ubuntu 中修正的,我使用了后一种。

    ● 参考【https://www.zhihu.com/question/46525639?sort=created】(多个方法),【https://zhuanlan.zhihu.com/p/24762788】(总结了 Ubuntu16 以前改 rcS 的方法和 Ubuntu16 以后的如下方法)

    $sudo su
    ——输入密码
    
    #apt-get install ntpdate
    #ntpdate time.windows.com
    #hwclock --localtime --systohc

    ▶ 引导项调整(顺序,默认项,等待时间)

    ● 参考【https://blog.csdn.net/lu_embedded/article/details/44353499】(详细的 grub 参数含义),【https://www.ssdax.com/2347.html】(正儿八经的修改参考)

    ● 文件 boot/grub/grub.cfg 是由文件 文件 /etc/default/grub 和 目录下 /etc/grub.d/ 的文件自动生成的,一旦 update-grub 就会刷新,改了没用

    ● 主要涉及调整文件 /etc/default/grub 和文件 /etc/grub.d/25_custom

    ● /etc/default/grub 的主要部分改成了:

    GRUB_DEFAULT=2                  # 默认启动项编号,从 0 开始,我的第 2 项是 windows
    #GRUB_HIDDEN_TIMEOUT=1          # 单系统时隐藏倒计时,注释掉的话就不使用
    GRUB_HIDDEN_TIMEOUT_QUIET=true  # 仍倒计时但不显示?
    GRUB_TIMEOUT=0                  # 倒计时,小于零则无限等待,等于零则会被强改回等待10秒,在 /boot/grub/grub.cfg 中有一句 if [ "${timeout}" = 0 ]; then set timeout=10 fi
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_CMDLINE_LINUX="acpi_backlight=vendor"

    ● /etc/grub.d/25_custom 中把各个启动模块全部注释掉(最重要的 Ubuntu,Ubuntu Advanced 和 Windows Boot Manager 都不是在这里定义的)

    #!/bin/sh
    exec tail -n +3 $0
    
    #menuentry "Windows UEFI bootmgfw.efi" {
    #search --fs-uuid --no-floppy --set=root 36E1-3F21
    #chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
    #}
    
    #menuentry "Windows Boot UEFI loader" {
    #search --fs-uuid --no-floppy --set=root 36E1-3F21
    #chainloader (${root})/EFI/Boot/bkpbootx64.efi
    #}
    
    #menuentry "EFI/ubuntu/MokManager.efi" {
    #search --fs-uuid --no-floppy --set=root 36E1-3F21
    #chainloader (${root})/EFI/ubuntu/MokManager.efi
    #}
    
    #menuentry "efi/EFI/Boot/bkpbootx64.efi" {
    #search --fs-uuid --no-floppy --set=root ae416b9e-c4d4-4094-82ee-673b949938db
    #chainloader (${root})/efi/EFI/Boot/bkpbootx64.efi
    #}
    
    #menuentry "efi/EFI/ubuntu/MokManager.efi" {
    #search --fs-uuid --no-floppy --set=root ae416b9e-c4d4-4094-82ee-673b949938db
    #chainloader (${root})/efi/EFI/ubuntu/MokManager.efi
    #}

    ● 之后记得在终端里 update-grub。update-grub2命令实际上是指向 update-grub 的,所以输入两者等效。

    ---2020年3月3日---

    ● NV 显卡驱动对 Linux 内核版本有上下限制,过高或过低都不能安装和运行,参考【https://wangcong.net/article/LinuxNvidiaCUDATensorFlowVersion.html】

       在某次更新后我的内核变成了 5.3.0(uname -r 获取信息),nvidia-smi 都没了,安装显卡驱动或 CUDA 时报错 “The driver installation is unable to locate the kernel source”

       查到 CUDA10.0 要求的 Ubuntu 内核版本是 5.0.0,去看 /usr/src 目录,发现既有原来的 5.0.0-40 内核又有新的 5.3.0内核。重启时进入 Adanvce mode,选择原来的低版本内核进入系统,就能正常安装和运行了。

       安装和删除内核的办法: sudo apt-get --purge remove linux-headers-5.3.0* , sudo apt-get install linux-headers-5.0.0-37 linux-headers-5.0.0-37-generic 

       Grub 默认使用最高版本的内核来启动系统,换成低版本内核后要删除残留的高版本。

  • 相关阅读:
    python---redis缓存页面前戏之剖析render源码
    python---redis的python使用
    python---redis中文操作与系统中文检测
    python---redis在windows安装以及测试
    python---基于memcache的自定义session类
    python---memcache使用操作
    python---memcache基本使用以及内部原理
    googlecast
    Android-L-Samples
    libsuperuser
  • 原文地址:https://www.cnblogs.com/cuancuancuanhao/p/8996463.html
Copyright © 2011-2022 走看看