Windows+Ubuntu 22.04.1 LTS 64bit 双系统配置

2023-11-09

为了开发linux下的软件,花了半天的时间安装了双系统,记录一下过程方便以后重装/帮同学装。

安装尽量使用官网教程。

一、提前准备

        1.确保硬盘有足够空余空间

        2.关闭windows快速启动(会影响开机进入多系统引导)              windows 10如何关闭快速启动-百度经验

        3.查好自己的电脑品牌怎么进入BIOS界面(一般是重启时F12),然后重启进入BIOS界面,关闭secure boot(安全启动)

二、准备启动U盘&安装ubuntu

        (基于ubuntu官网教程Install Ubuntu desktop | Ubuntu的建议)

        1.空U盘,大小正常就行。

        2.进入ubuntu官网,下载desktop版(LTS更稳定),建议点“其他下载” ,比如torrent迅雷链接,不然很慢。

        3. balenaEtcher 下载,用于烧录U盘(别的据说不好用)

        4. 烧录U盘,重启后会自动通过U盘启动 (若没有,则在BIOS中把启动优先级最高项设置为U盘启动)

        5. 安装过程,基本跟着ubuntu官网的教程走下去就行。其中:

        语言选English;

        Installation Setup: 按官网说的 勾选other options;

        Drive Management:官网是装纯ubuntu 而我们是装双系统,会提示“检测到已经有Windows”(如果已经是双系统,在重装/升级linux,则是“检测到windows和ubuntu”),选择“并存”的那项(重装选覆盖原linux)。之后会有磁盘分配,选自动分配就行(不影响windows,它会自动选择一段空的磁盘区间。我的硬盘空余空间足够分配100G给Ubuntu,不用管网上那些磁盘分区教程,自动就完事了)

        4. 安装完重启,会让拔掉U盘,然后进入grub界面,选ubuntu。(如果要进windows就选带windows那个)

三、新ubuntu的“装修”

        1. 更新

        Ctrl+Alt+T 打开终端,先做基本更新(必须),下三行命令以后时不时可以做一下。

sudo apt update
sudo apt upgrade
sudo apt autoremove

        2. 语言设置

        打开settings,region&language,选汉语,然后重启。重启后会询问“是否要把目录改名为中文”,当然选“No”。再点开区域与语言,点击管理已安装的语言,这时会自动补全语言包。

        3. 取消sudo密码

sudo visudo

        找到 %sudo ALL=(ALL:ALL) ALL 这⼀⾏修改为 %sudo ALL=(ALL:ALL) NOPASSWD:ALL

        Ctrl+O写入,回车以确认,Ctrl+X离开。之后执行sudo就不用密码了。

        4. 安装gedit(代替垃圾vim)

sudo apt-get install gedit

        5.换源+配置源

        备份sources.list,并添加国内源(如清华源)

sudo cp /etc/apt/sources.list /etc/apt/sources.list.save
sudo gedit /etc/apt/sources.list

        在清华大学开源软件镜像站中选择对应ubuntu版本(jammy对应22.04),复制时不用预发布那部分:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

        (可看到,每行末尾都已经启用了main、restricted、universe、multiverse库)

        如有需要,可以将universe和multiverse仓库加上:

sudo add-apt-repository universe
sudo add-apt-repository multiverse

        保存退出后,更新软件包缓存:

sudo apt update
sudo apt upgrade
sudo apt autoremove

        如果update时,出现了密钥问题(用阿里源时遇到过),如:

  由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32

        则复制后面的密钥,执行:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 3B4FE6ACC0B21F32

        注:有的教程通过“软件与更新”界面选择最优源,但似乎它只是一次性针对包缓存进行更新,而不改变sources.list,所以不如上述方法。

6. 安装小企鹅输入法Fcitx5

        参考自:Ubuntu22.04安装配置Fcitx5中文输入法(详细)_fcitx5 ubuntu_muzing_的博客-CSDN博客

sudo apt install fcitx5 \
fcitx5-chinese-addons \
fcitx5-frontend-gtk3 fcitx5-frontend-gtk2 \
fcitx5-frontend-qt5 kde-config-fcitx5

        在 GitHub 打开维基百科中文拼音词库Releases 界面,下载最新版的 .dict 文件

wget https://github.com/felixonmars/fcitx5-pinyin-zhwiki/releases/download/0.2.4/zhwiki-20220416.dict
sudo mv zhwiki-20220416.dict /usr/share/fcitx5/pinyin/

        配置默认输入法

im-config

        设置环境变量,将以下配置项写入配置文件中(对所有用户生效):

sudo gedit /etc/profile

        在文件末尾写入:

export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx

        保存退出。这时可在应用程序中找到小企鹅Fcitx5,启动,就可以输入拼音了。基本不用再设置,默认Ctrl+空格切换出输入法。

        为了开机自动启动Fcitx5:

sudo apt install gnome-tweaks

        在应用程序中找到“启动应用程序”,点+号添加Fcitx5,执行程序位于/usr/bin/fcitx5

7. 双系统时间问题

        如果切回windows,会发现windows的时间不对了,解决方法是:

        管理员身份打开power shell,执行:

Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

8. 安装nvidia驱动和cuda(个人需求)

        nvidia驱动安装成功的目标:终端输入nvidia-smi,输出正常。

        cuda安装成功的目标:终端输入nvcc -V,输出正常。

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Fri_Jan__6_16:45:21_PST_2023
Cuda compilation tools, release 12.0, V12.0.140
Build cuda_12.0.r12.0/compiler.32267302_0

8.1 nvidia driver

        参考:IT little white的博文

        nvidia官网下载,找到对应驱动版本,下载.run文件,记住下载位置。其中,可能需要查看显卡型号的命令:

lspci | grep -i vga

       这里看nvidia相关的。有的人看到nvidia corporation XXXX,看不出是什么型号,可以去PCI devices输入后面的编号查询。

        卸载已有的nvidia驱动(没有就无所谓),装依赖,禁用nouveau驱动,

sudo apt-get purge nvidia*
sudo apt-get install gcc g++ make
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

        在打开的文件末尾加上:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

        保存,更新,重启:

sudo update-initramfs -u
sudo reboot

        重启后验证下(若该命令无输出则成功禁用):

lsmod | grep nouveau

        安装lightdm,然后关闭图形界面:(安装lightdm时 点确定,选择时选lightdm)

sudo apt-get install lightdm
sudo telinit 3

        此时进入命令行模式,安装nvidia驱动(目录和.run文件名 自己改):

cd Downloads/
sudo chmod +x NVIDIA-Linux-x86_64-430.26.run
sudo bash NVIDIA-Linux-x86_64-430.26.run -no-opengl-files -no-x-check

        之后的弹窗选择:不安装32位兼容,不更新X配置。成功后输入reboot重启。

        此时,终端输入 nvidia-smi 应生效。

8.2 cuda

        官网下载

        挺慢的,下载好以后,配置环境变量:

sudo gedit ~/.bashrc

        末尾加上:

export CUDA_HOME=/usr/local/cuda
export PATH=${CUDA_HOME}/bin:${PATH}
export CPATH=${CUDA_HOME}/targets/x86_64-linux/include:$CPATH
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:$LD_LIBRARY_PATH

        更新环境变量:

source ~/.bashrc

        此时,终端输入 nvcc -V 应生效。

9. 调整开机引导的优先级(以及设置grub)

       目的:默认启动windows,而不是默认ubuntu。

       首先得明白,在BIOS界面已经将ubuntu的引导设为优先了(装好双系统后,从ubuntu的引导启动,才能进入选择“ubuntu”、“windows”、“ubuntu高级选项”的界面,如果BIOS里优先是启动windows的引导,那就直接进windows了,不会有选择界面)

        现在进入ubuntu系统:

sudo gedit /etc/default/grub

        修改其中GRUB_DEFAULT,值是0指默认选第一行,改成选择界面windows对应的行就好。(我看到的是windows在第3行,所以改为2)然后保存、更新:

sudo update-grub

        重启。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows+Ubuntu 22.04.1 LTS 64bit 双系统配置 的相关文章

  • 程序“gem”可以在以下软件包中找到

    我正在 Virtual Box Ubuntu 13 10 上安装 Ruby on Rails 以下是步骤 ruby v gt 程序 ruby 可以在以下软件包中找到 尝试 sudo apt get install 来源 我的帐户 gt 好的
  • Mono 3.0、Ubuntu 12.10、Nginx 和 ServiceStack

    根据 ServiceStack 网站的说法 使用 Mono 在 Linux 上启动和运行 ServiceStack 应该很容易 我已经在系统 Ubuntu 12 10 上安装了 nginx mono 3 0 和 fastcgi 我用过thi
  • 使用脚本检查 git 分支是否领先于另一个分支

    I have branch1 and branch2我想要某种 git branch1 isahead branch2 这将显示如果branch1已承诺branch2没有 也可能指定这些提交 我无法检查差异原因branch2 is在之前br
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 为什么此 NASM 代码会打印我的环境变量?

    本学期我刚刚完成计算机体系结构课程 除其他外 我们一直在涉足 MIPS 汇编并在 MARS 模拟器中运行它 今天 出于好奇 我开始在我的 Ubuntu 机器上摆弄 NASM 基本上只是将教程中的内容拼凑起来 并感受一下 NASM 与 MIP
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • 使用 libusb 输出不正确

    我用libusb编写了一个程序 我怀疑输出是否正确 因为所有条目都显示相同的供应商和产品 ID 以下是代码 include
  • vim 中的 python 2 支持

    我正在尝试设置 YouCompleteMe 一个 vim 代码完成插件 当我运行 vim 时 它给我这个错误消息 YouCompleteMe unavailable 需要 python 2 x 我的 ubuntu 机器上安装了正确版本的 p
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • 如何在线程创建和退出时调用函数?

    include
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • 如何在不使用 IDE 的情况下在 Linux 上运行 Java 项目

    我是 Java 新手 基本上 我开发了一个java项目 其中包含Eclipse中的多个Java包 该项目在我安装了 redhat Linux 的桌面上运行正常 然而 我需要在一个更强大的没有安装X11的Linux服务器 redhat ent
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt

随机推荐

  • vue3运行npm run serve报错ERROR Error: Cannot find module ‘babel-plugin-import‘ Require stack:

    1 完整报错 gt ims support demo 0 1 0 serve Users yizhikaixinya Desktop charmplus ims gt vue cli service serve ERROR Error Ca
  • 实验SparkSQL编程初级实践

    实验SparkSQL编程初级实践 实践环境 Oracle VM VirtualBox 6 1 12 Ubuntu 16 04 Hadoop3 1 3 JDK1 8 0 162 spark2 4 0 python3 5 Windows11系统
  • 领域建模

    忙碌的过着周末 一边思考如何建设自己知识体系 另外一遍白板的各种算法在脑袋互相争抢时间 低音炮单曲循环的的Ava Max Salt 心 静下来 环境燥起来 思绪继续飞行 前期读了一半的书 重新拿起 在建模方式上理解场景方法的研究 之前分享的
  • asp.net zero 8.2 学习-3-添加实体,并迁移到数据库

    系列目录 asp net zero 8 2 学习 1 安装 asp net zero 8 2 学习 2 创建一个页面 asp net zero 8 2 学习 3 添加实体 并迁移到数据库 asp net zero 8 2 学习 4 创建接口
  • 压缩伪影的探讨

    1 压缩伪影的由来 常用的视频编码器中 在一个框架中使用了多种编码方法 01 预测编码 不编码预测值 而是编码预测值与实际值的差值 02 变换编码 对信号的样本值进行某种形式的函数变换 从一种空间变换到另一种空间 然后再根据信号在另一个空间
  • SOA中国路线图活动感受

    下午参加了SOA中国路线图活动 主要由普元公司和相关的媒体以及电信客户进行演讲 对于SOA我之前一直认为是个很虚的东西 概念大于实践 但听了普元公司黄柳青博士的介绍以及在电信领域中的应用 感觉还是有收获的 很多思想可以应用到系统的设计和开发
  • 数据结构——红黑树

    1 什么是红黑树 红黑树是一种特定类型的二叉树 用于组织数据 它是一种平衡二叉查找树 AVL树 的变体 每个结点都带有颜色属性 红色或黑色 在红黑树中 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长 具体来说 红黑树满足以下性质 每
  • 结构型模式-享元模式

    package per mjn pattern flyweight 抽象享元角色 public abstract class AbstractBox 获取图形的方法 内部状态 public abstract String getShape
  • 机器学习 可视化_机器学习-可视化

    机器学习 可视化 机器学习导论 Introduction to machine learning In the traditional hard coded approach we program a computer to perform
  • 【Unity 几何着色器】简单的网格线描边

    水文 几何着色器 第一个pass就默认的unlit效果 第二个pass是新建的 属性都没有用到 先留个坑吧 Shader GeoHelp LineMesh Properties MainTex Texture 2D white EdgeWi
  • 优质数对的数目[位运算特点+抽象能力考察+分组快速统计]

    位运算特点 抽象能力考察 分组快速统计 前言 一 优质数对的数目 二 思路与优化过程 总结 参考文献 前言 位运算是计算机最基本的计算 是最快的运算方式 与或非各有特点 抽象能力考察我理解成一种 拿核心去累赘 的能力 分组快速统计 我们不必
  • 1Python入门小结(1)

    Python入门小结 1 万丈高楼平地起 简介 Python是一种通用编程语言 其在科学计算和机器学习领域具有广泛的应用 本小节包含的内容 变量 运算符与数据类型 位运算 条件语句 循环语句 异常处理 变量 运算符与数据类型 注释 Pyth
  • 我使用过的Linux命令之stty - 显示和修改终端行设置

    原文链接 http codingstandards iteye com blog 826924 用途说明 stty命令用于显示和修改终端行设置 change and print terminal line settings 常用参数 stt
  • 【Linux学习】虚拟机VMware 安装Qt5 一条龙讲解

    如何在Linux下安装Qt5呢 若已在Linux下载好安装包 可直接从第三步进行阅读 目录 第一步 下载所需版本Qt 第二步 将Qt安装包传输到Linux 第三步 Linux下安装Qt 第四步 配置 Qt 环境 本文安装版本 linux上的
  • 浅谈软件构件和软件构件测试

    什么是构件 构件也称为组件 是一个独立发布的功能部分 通过接口可以访问它的服务 其特点是 l 软件系统中具有相对独立功能 可以明确辨识 接口由契约指定 和语境有明显依赖关系 可独立部署 且多由第三方提供的可组装软件实体 l 软件构件须承载有
  • 前端导出后端文件的方法

    一般存在两种方式 1 请求接口之后 后端返回文件路径 前端直接下载 2 请求接口之后 后端以文件流的形式返回给前端 前端再下载到本地 第一种方式 window location href res request responseURL 直接
  • CVPR 2017论文

    近期在看CVPR2017的文章 顺便就把CVPR2017整理一下 分享给大家 更多的 Computer Vision的文章可以访问Computer Vision Foundation open access CVPapers Machine
  • Vue实现给按钮的点击事件绑定id参数

    当我们需要给按钮所绑定的值做出判断并记录时 eg 为答题的正确以及题号做判断 第一种情况 使用v for循环 div div 我是id div div 1 2 3 然后在 vue 的实例中就可以拿到对应的 id b index this l
  • 持久化数据&缓存数据双写一致性

    背景 缓存中数据更新一般有两个入口 数据缓存过期 数据在访问时发现缓存中无数据时重新查库然后更新至缓存 场景和问题等同于缓存查询 相关solution参考 缓存数据查询的注意事项 缓存未过期 数据库数据有变动主动更新至缓存 比较常见的场景
  • Windows+Ubuntu 22.04.1 LTS 64bit 双系统配置

    为了开发linux下的软件 花了半天的时间安装了双系统 记录一下过程方便以后重装 帮同学装 安装尽量使用官网教程 一 提前准备 1 确保硬盘有足够空余空间 2 关闭windows快速启动 会影响开机进入多系统引导 windows 10如何关