U盘/移动硬盘安装插拔式Ubuntu系统,并将Docker目录挂载到NTFS硬盘

Windows10+的WSL2的确给开发人员带来了很多方便,但是仍然有很多缺点。比如:太占系统内存;有些软件无法在WSL2中编译成功;相当于虚拟机,性能不如原装系统。

装双系统,相信大家都不陌生,但它会占用更多硬盘空间。在此记录一下如何在移动硬盘中安装Ubuntu系统、Docker运行环境、并将Docker的数据存放目录设置在NTFS格式或其他非ext4格式的移动硬盘中。方便保留更多空间给移动硬盘用于文件传输。

1. 制作Ubuntu安装介质

在Ubuntu官网下载ISO镜像,并通过软碟通的“写入硬盘镜像”刻录到一个U盘中。 

2. 安装Ubuntu系统

将U盘安装盘和要运行Ubuntu系统的移动硬盘同时插入一台电脑,选择U盘作为启动项。根据指引开始安装Ubuntu系统,在进行到分区的步骤时,按如下方式进行手动分区:

启动分区: /boot 1024m ext4格式

交换分区: swap 8192m

根目录: / 至少25G左右 ext4格式

剩下的空间可以在Window系统中格式化为NTFS文件系统,这样无论是在Ubuntu还是Windows中都可见,可以用于数据传输。然后一步一步往下安装等待完成重启就可以了。

3. Ubuntu系统的设置

Ubuntu安装完成后仍然有很多瑕疵。比如独显驱动并非NVIDIA驱动等。还有如下一些典型问题。

3.1 时区不一致问题。

Ubuntu系统的时区一般会和Windows差个8小时,可以通过终端中运行如下命令进行统一:

timedatectl set-local-rtc true
3.2 系统界面为英文。

有时候即使安装时候选择了中文,但是进入系统后还是英文界面。可以在“系统”->“区域和语言”中设置添加“汉语”。但有时候仍然不起作用。可以通过修改配置文件解决:

sudo echo "LANG=zh_CN.UTF-8">>/etc/default/locale

然后重启系统。

3.3 安装搜狗拼音输入法。

默认的输入法有时候会突然卡死,可以参考这里的官方教程安装搜狗输入法,联想更加准确,体验更好。Ubuntu20.04的安装方法同样适用于高版本的Ubuntu系统。

3.4 设置开机自动挂载移动硬盘。

移动硬盘还有很大一部分NTFS的空间,我们可以把他挂载到Ubuntu的‘‘/mnt’’目录下。

首先手动挂载硬盘,运行 df -h 查看硬盘文件系统,比如我的是 /dev/sda1, 那么可以运行如下命令设置开机自动挂载到/mnt:

sudo echo "/dev/sda1 /mnt ntfs defaults 0 0">>/etc/fstab

然后可以手动卸载硬盘,运行 sudo mount -a 后检查/mnt是否挂载成功,有无问题,没问题的话 重启系统即可。

4. 安装Docker并修改数据存储目录

Docker Engine的安装可以参考官方给的步骤:

安装步骤

去sudo运行

Docker安装完成后默认的存储驱动一般为Overlay2,Root Dir为/var/lib/docker 这个目录是系统安装目录,空间很小。可以通过如下命令更换其目录为移动硬盘中的目录并修改存储驱动为“fuse-overlayfs” 。这个格式可以支持任意的文件系统且性能很好。否则docker会在你跟换了非ext4的目录后强行将存储驱动改为vbs,性能非常的差!

安装fuse-overlayfs

sudo apt-get update
sudo apt-get install fuse-overlayfs

编辑配置文件 

sudo vim /etc/docker/daemon.json

输入json配置:

{"data-root": "/mnt/docker","storage-driver": "fuse-overlayfs","storage-opts": ["overlay2.override_kernel_check=true"]
}

然后重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

这一步让docker目录去兼容NTFS硬盘的方法我摸索了很久,直至在Google上找到这篇文章Use the Device Mapper storage driver (deprecated)。因为之前一直用的devicemapper,这个格式在docker 25.0.0之后的版本就被丢弃了。不过正是因为它被丢弃了,我才发现了更好用的fuse-overlayfs:

Storage driverSupported backing filesystems
overlay2xfs with ftype=1, ext4
fuse-overlayfsany filesystem
btrfsbtrfs
zfszfs
vfsany filesystem

替代方案fuse-overlayfs的性能确实更加优越且硬盘占用小了很多。之前的devicemapper还需要手动配置dm.basesize等,否则镜像可能加载不进去且很占硬盘。至于Nvidia-Docker运行环境安装可以参考官方文档。

至此,主要配置就完成了。这样就可以通过移动硬盘中的Ubuntu制作镜像,Ubuntu的docker占用的空间设置在移动硬盘的NTFS空间上,可以动态调整大小,很方便。自己制作的镜像也可以直接导出到移动硬盘的NTFS空间中,在不同系统和设备间进行传输了,非常方便。

5. 其他安装

Notepad++是一款小巧且非常好用的脚本编辑工具,尽管它作者在政治上存在很大误区。

Ubuntu上也可以通过自带的snap安装notepad++。但是最好用命令使用开发者模式安装,否则对一些挂载的目录它可能没有读写权限。

sudo snap install notepad-plus-plus --devmode

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/37320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

若依 ruoyi 分离版 vue 简单的行内编辑实现

需要实现的效果&#xff1a;双击文本 - 修改文本 - 保存修改。 原码&#xff1a;仅文本显示文字内容 <el-table-column label"商品" align"center" prop"goodsName" width"200" v-if"columns[1].visible" /> 实现…

气膜仓库的优势与应用—轻空间

随着现代物流和存储需求的不断增长&#xff0c;传统仓库的建设和运营成本日益增加&#xff0c;企业需要寻找更加灵活、高效和经济的解决方案。在这种背景下&#xff0c;气膜仓库作为一种新型仓储形式&#xff0c;以其独特的优势和广泛的应用前景&#xff0c;逐渐受到市场的青睐…

什么是封装?为什么要封装?

什么是封装&#xff1f; 封装是计算机科学中的一个重要概念&#xff0c;尤其在面向对象编程&#xff08;OOP&#xff09;中占据核心地位。封装主要指的是将数据&#xff08;属性&#xff09;和对这些数据的操作&#xff08;方法&#xff09;组合在一个单元中&#xff08;我们称…

打开数据结构的大门——顺序表详解

前言&#xff1a; 小编在近日刚开始学顺序表&#xff0c;为了巩固学习&#xff0c;小编先写一篇关于顺序表的文章来加强记忆&#xff0c;写完这一篇我将继续书写C语言相关的文章&#xff0c;那么废话不多说&#xff0c;下面小编将打开数据结构的大门&#xff01;顺序表来喽&…

Android中常见的线程池

日常开发中我们常常使用到线程池&#xff0c;其能有效管理线程资源&#xff0c;避免过多线程导致系统资源浪费、又能复用线程资源&#xff0c;避免频繁的创建/销毁线程。在Android中线程池的实现为ThreadPoolExecutor类&#xff0c;本文主要记录该类相关的知识点。 线程池的六…

详述Python环境下配置AI大模型Qwen-72B的步骤

随着人工智能技术的发展&#xff0c;大规模预训练模型如Qwen-72B等逐渐成为研究和应用的重点。本篇博客旨在提供一份详细的指南&#xff0c;帮助Python开发者们在自己的环境中顺利配置并使用Qwen-72B大模型。 请注意&#xff1a;由于Qwen-72B这一模型目前并未公开存在&#xf…

视频监控业务平台LntonCVS国标视频综合管理平台功能及技术优势

随着安防行业的快速进步&#xff0c;传统的视频监控平台正在与先进的技术和互联网技术融合&#xff0c;包括5G通信、GIS、大数据、云计算、边缘计算、AI识别、智能分析和视频直播等。这些技术的整合形成了综合性视频监控管理平台&#xff0c;具备集中管理、多级联网共享、互联互…

【面试系列】网络工程师 高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

如何深刻理解Redis的底层原理?Redis的运行机制是什么?如何优化Redis提供更高效服务

要深刻理解Redis的底层原理和运行机制&#xff0c;可以从以下几个方面入手&#xff1a; 1. 单线程模型&#xff1a;Redis采用单线程模型&#xff0c;所有的操作都在同一个线程中执行。这种设计可以减少线程切换带来的开销&#xff0c;从而提高性能 。 2. 虽然Redis是单线程的&…

Python日志库logging

日志级别 级别对应的数值: NOTSET&#xff08;0&#xff09;、DEBUG&#xff08;10&#xff09;、INFO&#xff08;20&#xff09;、WARNING&#xff08;30&#xff09;、ERROR&#xff08;40&#xff09;、CRITICAL&#xff08;50&#xff09; INFO、WARNING、ERROR、CRITICA…

华为---OSPF的DR与BDR(六)

9.6 OSPF的DR与BDR 9.6.1 原理概述 在OSPF的广播类型网络和NBMA类型网络中&#xff0c;如果网络中有n台路由器&#xff0c;若任意两台路由器之间都要建立邻接关系&#xff0c;则需要建立n(n-1)/2个邻接关系&#xff0c;即当路由器很多时&#xff0c;则需要建立和维护的邻接关…

6.优化算法之模拟

1.替换所有的问号 . - 力扣&#xff08;LeetCode&#xff09; class Solution {public String modifyString(String s) {char[] sss.toCharArray();int nss.length;for(int i0;i<n;i){if(ss[i]?){for(char cha;ch<z;ch){if((i0||ss[i-1]!ch)&&(in-1||ss[i1]!c…

Processing入门教程

目录&#xff1a; 课程前言认识PROCESSING 关于像素图形代码色彩与填充练习交互关于setup()和draw()第一次进行移动进一步复杂的交互操作代码实现如下&#xff1a;进一步了解PROCESSING 变量使用变量系统内置变量条件语句逻辑运算符循环语句while循环for循环结构化 函数实参对…

Selenium IDE 的使用指南

Selenium IDE 的使用指南 在自动化测试的领域中&#xff0c;Selenium 是一个广为人知且强大的工具集。而 Selenium IDE 作为其中的一个组件&#xff0c;为测试人员提供了一种便捷且直观的方式来创建和执行自动化测试脚本。 一、Selenium IDE 简介 Selenium IDE 是一个用于录…

驱动保险业高质量发展 金融壹账通“保险+科技”输出“数字化红利

近日&#xff0c;金融监管总局局长李云泽在陆家嘴论坛指出&#xff0c;将推动保险业坚持内涵式发展、特色化经营和精细化管理&#xff0c;加快由追求速度和规模&#xff0c;向以价值和效益为中心转变&#xff1b;引导保险机构树立正确的经营观、业绩观、风险观&#xff0c;完善…

出现 ORA-00923: FROM keyword not found where expected 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 服务驱动的时候,一开始弹出这个Bug,找了很久才找到问题所在 2024-06-25 18:39:13.809 | ERROR 1926765 | Druid-ConnectionPool-Create-1203111075

pbootcms提交留言成功后跳转到指定的网址

pbootcms在线留言表单提交成功后&#xff0c;如何跳转到指定的网址&#xff0c;默认提交留言后留在原来的页面&#xff0c;如果提交后需要跳转到指定网址&#xff0c;我们需要对文件进行修改。首先我们打开/core-/function/helper.php文件找到第162行左右代码&#xff1a; ech…

基于STM32的简易智能家居设计

一、项目功能概述 1、OLED显示温湿度、空气质量&#xff0c;并可以设置报警阈值 2、设置4个继电器开关&#xff0c;分别控制灯、空调、开关、风扇 3、设计一个离线语音识别系统&#xff0c;可以语音控制打开指定开关、并且可以显示识别命令词到OLED屏上 4、OLED实时显示&#…

JavaScript小记_如何获取对象的属性?

1. 什么是对象? 多个数据的封装体用来保存多个数据的容器一个对象代表现实中的一个事物 2. 对象的组成 属性: 属性名(字符串)和属性值(任意)组成方法: 一种特别的属性(属性值是函数) 3. 如何访问对象内部数据? .属性名: 编码简单, 属性名由特殊符号组成时不能用[属性名]…

ASUS/华硕幻14 2023 GA402X系列 原厂Windows11-22H2系统

安装后恢复到您开箱的体验界面&#xff0c;带原机所有驱动和软件&#xff0c;包括myasus mcafee office 奥创等。 最适合您电脑的系统&#xff0c;经厂家手调试最佳状态&#xff0c;性能与功耗直接拉满&#xff0c;体验最原汁原味的系统。 原厂系统下载网址&#xff1a;http:…