Mr. Kin's Blog

计算机知识分享/软件应用讲解

1   下载及安装VSCode

  • 下载:VSCode System Installer
  • 安装:默认路径安装,选项额外添选上下文菜单(文件和目录)

镜像加速下载的方法:将下载链接URL中的stable之前的字符全部改为https://vscode.cdn.azure.cn/即可。

2   配置C/C++开发环境

2.1   MSVC CL编译器的安装和环境设置

  1. 下载(CMakeNinja可以不用单独下载安装,MSVC CL编译器的Visual Studio Installer管理器可以统一管理下载和更新)
  2. 安装「Visual Studio 2022 生成工具」,然后勾选对应包下载安装
    1. 工作负荷:使用C++的桌面开发
      • MSVC v143 - VS 2022 C++ x64/x86生成工具(最新)
      • Windows 11 SDK (10.0.26100.0):建议选择最新的系统版本号
      • 用于 Windows 的 C++ CMake 工具(包含CMake和Ninja)
    2. 单个组件
      • 对 LLVM(clang-cl)工具集的 MSBuild 支持
      • 适用于 Windows 的C++ Clang 编译器(18.1.8)
      • MSVC v143 - VS 2022 C++ x64/x86 Spectre 缓解库(最新)
  3. 分别添加程序路径到系统环境变量Path
    • MSVC CL编译器路径:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
    • LLVM CLANG编译器路径:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\Llvm\x64\bin
    • CMake路径:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
    • Ninja路径:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja
  4. 拷贝.vscode配置文件夹

2.2   更新MSVC后找不到CL命令

使用Visual Studio Installer更新MSVC后,编译器版本号可能会变更,如果在终端运行cl命令后提示找不到程序,需要手动更新两处地方的CL编译器路径:

  • 系统环境变量Path
  • .vscode配置文件夹中的c_cpp_properties.json

3   VSCode源代码管理

对于新建的空仓库,使用clone命令克隆仓库后,第一次用vs code进行commit时,若使用「同步更改」命令提示说找不到远程仓库时,可以直接使用「推送到」命令。

4   Codeium扩展插件的帐号token获取及使用

一般直接通过Codeium Auth登录帐号即可使用扩展插件。

4.1   token获取

如果不想登录帐号,而是想要通过ctrl+shift+p执行Codeium: Provide Authentication Token命令输入token的话。首先需要获取token,获取方式:

  • 方式一:官网直链获取(此直链是会提示关联vim扩展,但token都是通用的,同样适用于VSCode的扩展),直接在该网址中登录帐号即可获取「Provide Authentication Token」
  • 方式二:参考token使用的1-4步骤。

4.2   token使用

  1. VSCode安装好Codeium扩展插件。
  2. 左下角,点击Codeium Auth登录按钮,首先插件会弹窗请求跳转到网页输入帐号登录。
  3. 直接关闭打开的网页,点击右下角「在线帐号登录」的cancel按钮。
  4. 之后插件会弹窗请求跳转到网页输入帐号登录,这个在线网址则是获取「Provide Authentication Token」。(如果已经提前获取到token,这里可以不登录网页帐号,直接关闭网页)
  5. 最后通过ctrl+shift+p执行Codeium: Provide Authentication Token命令输入token即可正常登录。

5   拓展插件

5.1   LaTeX-Workshop报错提示command 'latex-workshop.onEnterKey' not found

问题现象:在tex文件中使用Enter键会出现报错信息,提示command 'latex-workshop.onEnterKey' not found,只有Ctrl+Enter键才能正常输入回车。

解决方案:卸载LaTeX-Workshop扩展插件,关闭VSCode程序,确保VSCode正常移除插件的缓存文件。然后重新打开VSCode,重新安装LaTeX-Workshop

6   参考文献

[1] [Question] How can I get codeium auth token[EB/OL]. https://github.com/Exafunction/codeium.vim/issues/150.
[2] VsCode下载,使用国内镜像秒下载[EB/OL]. https://blog.csdn.net/bielaiwuyang1999/article/details/117814237.

1   Autodesk CAD

1.1   版本下载

CAD哪个版本好用-CAD各版本对比

下载地址:

1.2   官方文档查阅

1.3   优化CAD性能

  • 只用SHX字体,不要用系统真字体,例如宋体、黑体之类的粗字体。SHX的量级要远比TTF字体来得轻便,可以极大减小文件的尺寸,改善缩放平移以后的性能。
  • 开启硬件加速
  • 清理图面,善用清理命令及插件

2   浩辰CAD

2.1   版本下载

下载地址:

3   参考文献

[1] AutoCAD小秘密038:SHX大字体的通天塔[EB/OL]. https://zhuanlan.zhihu.com/p/52121478.
[2] 详解AutoCAD的.TTF字体和.SHX字体文件[EB/OL]. https://www.cadzxw.com/711.html.

1   Word

1.1   页码排版问题

  • 分页符前后的页眉页脚是一样的,分节符前后才有可能不一样。
  • 分节符后面的页眉页脚一般都是默认继承前面的格式的,可以取消“链接到前一个”。
  • 分节符用的下一页。

关于分页符和分节符的删除:

  • 视图删除法:进入菜单「视图」>「大纲视图」或者「草稿视图」等,找到想要删除的符号,按 delete 键进行删除。
  • 在菜单「开始」的文字样式左边,显示/隐藏编辑标记(箭头符号)。点击显示符号,然后 delete 删除。

1.2   格式刷

  • 选中需要复制样式的文字,然后点击菜单「开始」>「格式刷」。然后选中其他需要应用的文字。
  • 单击时,只能使用一次。双击时,能多次使用。

1.3   自动目录

在菜单「视图」>「大纲视图」对需要生成目录的标题进行级别排版后,点击菜单「引用」>「目录」>「自动目录 1」。

1.4   页眉页脚样式的删除,如下划线

双击页眉页脚进入「设计模式」编辑。在「开始」>「样式」下拉 >「清除格式」

1.5   LaTeX公式输入

插入公式的快捷键 alt+=

几种模式的区别:

  • /Unicode:输入空格即可将当前 latex 语句转换成公式。
  • LaTeX:写完所有 LaTeX 语法,通过转换「当前‑专业」功能才能完成转换。(无法通过空格转换)

P.S.「全部‑专业」功能会对当前文档使用转换功能

1.6   在表格(最外框那种,占满整个页面)下方插入空行

  1. 在表格的最下方一行按 TAB 键,生成第二页表格。
  2. 在第二页表格第一行,插入空白页。
  3. 之后删除表格页。

1.7   参考文献的引用及自动更新

  1. 创建文献编号,排版文献
    1. 「开始」选项卡 > 有序编号 > 定义新编号格式(D)
    2. 在数值左右分别添加 [] 符号
    3. 对参考文献使用该格式进行排版
  2. 交叉引用,插入引用编号
    1. 「引用」选项卡 > 交叉引用
    2. 编号项 + 段落编号 + 插入为超链接
    3. 选择所引用的参考文献
  3. 自动更新域:右键插入的引用编号 > 更新域(全局更新:ctrl+A 之后按 F9> 更新页码)

2   Excel

2.1   标准化统一整列数据的格式

  • 无任何数据的初始列:设置单元格式
  • 一列已有数据,包含数字格式、文本格式等不同格式:这个情况使用「设置单元格式」功能并不会对已有数据进行格式化修改。正确的方法是:选中该列数据,选择菜单栏“数据”选项卡---“分列”后单击下一步,再下一步,再如图的选项卡中,选择要把该列数据变更为“常规”还是“文本”或其他。如有特殊需求,可点击“高级”。

2.2   边框颜色修改问题

设置顺序:先选颜色,再在预设里选择边框样式(外边框和内部)。

注意顺序不能搞错,必须先选颜色,再选边框。

3   安卓android Office

  • excel表格别用其中的创建自定义视图功能,这功能是创建一个新的视图,完完全全改变单元格的全部样式(对应视图)。如果只是需要修改单元格特定格式,在编辑模式下完成即可。

4   参考文献

[1] EXCEL将一列不同格式的数据变成同一格式[EB/OL]. https://jingyan.baidu.com/article/3ea51489faf0a252e61bba1e.html.

1   安卓系统免杀后台进程设置步骤(包含各个安卓系统)

https://dontkillmyapp.com/

2   在保留root的情况下(保留Magisk)升级系统

  1. 更新到提示你“立即安装”这一步,先不要点
  2. 调出Magisk小窗,点Magisk旁边的安装,选择安装到未使用的槽位,然后会提示你重启,不要点重启,点“立即安装”会自动重启
  3. 重启后检查更新,检查Magisk、ROOT还在不在,再把模块都打开再重启一遍检查

3   参考资料

[1] Realme真我GT Neo3更新系统会掉ROOT吗-怎么保留Magsik更新系统[EB/OL]. http://m.romjd.com/reviews/content/6069.

1   Bash终端

1.1   符号输入控制

  • ctrl+c:停止
  • ctrl+z:停止输入

2   基础命令

  • 关机:
    • poweroff(也是调用shutdown工具链实现)
    • halt(实际调用shutdown -h)
    • shutdown -h now
    • init 0(init是所有进程的祖先,他是Linux系统操作中不可缺少的程序之一。它的进程号始终为1,所以发送TERM信号给init会终止所有的用户进程,shutdown就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机,init 1为重启。)
  • 重启
    • reboot
    • shutdown -r now(root权限可使用)
    • init 1

3   包管理器

3.1   apt

3.1.1   apt update证书验证错误

错误信息:Certificate verification failed: The certificate is NOT trusted.

1
sudo apt install --reinstall ca-certificates

4   编译问题

4.1   编译环境的常规配置

以ubuntu举例,下载和更新相关的依赖:

1
2
3
4
apt update
apt upgrade
apt install linux‑headers‑amd64 # 若失败,则先通过上面两条更新系统(因为/etc/apt/sources.list 源 repo 没有目前系统内核的 header,被移除了)除非换 repo branch
apt install build‑essential

4.2   源码编译的程序的安装和卸载

常规的编译安装过程:

1
2
3
4
# 建议是添加prefix参数指定安装路径,日后卸载程序只需删除该目录以及删除软链接(如果有创建的话)
sudo ./configure --prefix=/path_to_install
sudo make -j32
make install

卸载方式:

  • 反安装target: make uninstall/distclean/veryclean
  • make install之后目录下有一个install_mainfest.txt的文件记录安装的所有内容:xargs rm < install_manifest.txt
  • 若未指定prefix且没有install_mainfest.txt,临时目录重新安装:./configure --prefix=/tmp/to_remove && make install,遍历/tmp/to_remove内的文件,把最初安装诶只的文件删除(缺点:部分文件夹可能无法删除,无法确定是系统安装或者源码编译安装)
  • debian系列linux可尝试使用auto-apt 和 checkinstall:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apt install auto-apt checkinstall
# 构建生成deb包
auto-apt run ./configure
make
checkinstall
# 完全卸载包,包名在checkinstall后有提示
dpkg -r packagename
# 用生成的deb包重新安装
dpkg -i ***.deb
# 列出包中安装的文件位置
dpkg -L packagename
# 检查是否安装成功
dpkg -l | grep packagename
# 同上
apt list --installed | grep packagename

4.3   普通用户导致的编译问题

普通用户中如果在系统关键目录中,如/opt,执行sudo make可能会出现xxx command not found,这是因为有些命令在sudo下是不可见的,但如果不用sudomake又无法在这些路径生成文件。

解决方式:使用make -f参数指定makefile文件,让它在有权限的路径中工作。例如,将工作路径切到home目录中,make -f /opt/xxx/xxx/makefilemake可在home路径中生成文件。

4.4   常见编译错误

  • make /lib/modules/xxx/build no such file or directory:证明无 header
  • 在新系统上编译老驱动可能会遇到'SUBDIRS' was removed in Linux 5.3 Use 'M=' or 'KBUILD_EXTMOD=' instead:这代表驱动太老了,驱动代码的编译流程已不适合新系统。

5   账户管理

5.1   删除账户

1
2
userdel [-r] [user_account] # 切换到其他账户再执行,建议是root账户
userdel -r kin # 删除账户kin,-r参数是移除该账户的home目录和用户邮箱(mail spool)

5.2   自动root登录

1
2
3
4
gedit /etc/gdm/custom.conf
# 在daemon下添加
AutomaticLoginEnable=True
AutomaticLogin=root

5.3   重置密码(ubuntu为例)

  1. 进入到救援模式中,选择root选项(root Drop to root shell prompt),敲一次回车enter键显示:root@ubuntu:~#
  2. 重置密码命令:passwd 系统账户名,按提示输入两次密码确认
  3. exit退出shell,选择resume回到正常启动中。

5.4   帐号和密码文件(/etc/passwd和/etc/shadow)

Linux系统中,所有用户(包括系统管理员root)的账号和密码存储在/etc/passwd和/etc/shadow这两个文件中。其中,passwd保存的是账号,shadow保存的是账号的密码等信息(/etc/passwd只有root才可以修改的,/etc/shadow只有root才能查看)

5.4.1   /etc/passwd

示例:root:x:0:0:root:/root:/bin/bash

上面每一行都代表一个用户,每一行又通过[:]分为7个部分。

  1. 账号名称
  2. 为密码占位符(x表示该账户需要密码才能登录,为空时,账户无须密码即可登录)。原先用来保存密码的,现在密码都放在/etc/shadow中,所以这里显示x。
  3. UID,也就是使用者ID。默认的系统管理员的UID为0,我们添加用户的时候最好使用1000以上的UID,1-1000范围的UID最好保留给系统用。
  4. GID,也就是群组ID
  5. 关于账号的一些说明信息(暂时可以忽略)
  6. 账号的家目录,家目录就是你登陆系统后默认的那个目录
  7. 账号使用的shell。/bin/bash为可登录系统Shell,/sbin/nologin表示账户无法登录系统。

5.4.2   /etc/shadow

示例:root:!:15324:0:99999:7:::

上面每一行都代表一个用户,每一行又通过[:]分为9个部分。

  1. 账户名称(密码需要与账户对应的)
  2. 加密后的密码:如果这一栏的第一个字符为!或者*的话,说明这是一个不能登录的账户,从示例可看出ubuntu默认的就不启用root账户。(账户未设置密码时为空,设置密码后加密显示。!为无效哈希,系统会自动锁定这些账户并阻止登录,通过在/etc/passwd设置/bin/false或者/sbin/nologin实现禁止登录)
  3. 最近改动密码的日期:上次修改密码的时间距离1970年01月01日多少天
  4. 密码不可被变更的天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则没有限制
  5. 密码需要重新变更的天数:密码经常更换才能保证安全,为了提醒某些经常不更换密码的用户,可以设置一个天数,强制让用户更换密码,也就是说该用户的密码会在多少天后过期(默认位99999天,可以理解为永不过期)
  6. 密码过期预警天数:如果在5中设置了密码需要重新变更的天数,则会在密码过期的前多少天进行提醒,提示用户其密码将在多少天后过期
  7. 密码过期的宽恕时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数
  8. 账号失效日期,过了这个日期账号就不能用了
  9. 保留未使用

5.4.3   /etc/shadow文件中密码的加密方式

示例:root:$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.:14838:0:99999:7:::

示例的密码域:$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.,密码域密文也是由三部分组成的,即:$id$salt$encrypted,详细参见linux标准源文件passwd.c中的pw_encrypt函数。

加密算法:明文密码和一个叫salt的东西通过函数crypt()完成加密

id为1时,采用md5进行加密;id为5时,采用SHA256进行加密;id为6时,采用SHA512进行加密。

得知加密方式,可以复制密文到相关工具上逆向破解:

6   硬盘和分区管理

6.1   挂载一个新硬盘

1
2
3
4
5
6
7
8
9
lsblk    #查看所有硬盘情况
df -lh #查看硬盘占用情况,以及挂载位置
sudo fdisk -l #查看硬盘分区情况
sudo fdisk /dev/sdb #给硬盘sdb创建分区
sudo mkfs.ext4 /dev/sdb #格式化硬盘sdb,并写入文件系统
sudo mkdir /mnt/pan #创建目录
sudo mount /dev/sdb /mnt/pan #将硬盘sdb挂载到 /mnt/pan 目录
sudo vim /etc/fstab # 设置开机自动挂载
/dev/sdb /mnt/pan ext4 defaults 0 0

6.2   将/home目录挂载到新分区(或新硬盘)

1
2
3
4
5
6
7
8
9
10
11
# 通过包管理器安装 gparted,进行新建分区或者格式化硬盘等操作。
sudo mkdir /mnt/home
sudo mount /dev/新分区 /mnt/home # 挂载新分区到/mnt/home
sudo rsync -aXS /home/ /mnt/home # a归档模式(递归传输并保持文件属性),X保持扩展属性
sudo mv /home /home_old
sudo mkdir /home
sudo umount /dev/新分区
sudo mount /dev/新分区 /home
blkid|grep /dev/新分区 # 查看新分区的uuid
sudo gedit /etc/fstab # 将新分区的uuid填入fstab
sudo rm -rf /home_old # 重启无异常,即可删除旧home目录

6.3   查看硬盘是不是固态硬盘(SSD)

1
2
3
4
5
# 0表明为ssd,1是机械
cat /sys/block/sda/queue/rotational

# 0表明为ssd,1是机械
lsblk -d -o name,rota

7   网络

7.1   查看网卡信息

查看ip信息:

  • windows:ipconfig /a
  • linux: ifconfig(配置网络接口)或者iwconfig(配置无线网络接口)

网卡名称解析:

  • lo:表示local
  • wl:表示wlan(Wireless Local Area Network)无线局域网
  • en:表示ethernet以太网
  • PCI接口的物理位置的坐标(bus, slot),其中bus表示总线,slot表示插槽

例子:

  • wlp3s0表示,WLAN PCI接口位置:bus=3, slot=0。
  • enp2s0表示,Etnernet PCI接口位置:bus=2, slot=0。

7.2   ubuntu配置网卡

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sudo nano /etc/netplan/01-netcfg.yaml

# 静态ip设置示例
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 192.168.1.10/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]

# DHCP设置示例
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes

# 应用网络配置
sudo netplan apply

7.3   ssh登录远程服务器

大部分系统都预装ssh程序客户端,方便连接其他ssh服务器使用,包括windows系统。如果需要设置作为被连接的ssh端,需要自行手动安装ssh的server。

连接命令:ssh 系统账户名@远程服务器ip,例如ssh root@192.168.1.1

查看ssh版本:ssh -V

7.3.1   Ubuntu开启ssh服务及允许root登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo apt install openssh-server

# 修改/etc/ssh/sshd_config文件
sudo nano /etc/ssh/sshd_config

# 修改如下字段
#PermitRootLogin prohibit-password
PermitRootLogin yes

# 重启sshd服务
sudo systemctl restart sshd.service

#默认情况下,在Ubuntu 20.04上未设置root用户的密码,当尝试以root用户身份进行SSH登录时,将显示错误消息Permission denied,please try again。因此,我们需要设置root用户的密码。出现提示时,输入当前用户密码,然后输入新的根密码:
sudo passwd
# 输入两次密码确定即可

7.3.1.1   系统自启ssh服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 开机自动启动ssh命令
# 注意在恢复模式中设置sshd自启服务,再次重启到恢复模式中的话,仍然是未启动的,但是按正常模式启动会自启(ubuntu18.04的实测结论)
sudo systemctl enable ssh

# 关闭ssh开机自动启动命令
sudo systemctl disable ssh

# 单次开启ssh
sudo systemctl start ssh

# 单次关闭ssh
sudo systemctl stop ssh

#查看ssh是否启动,看到Active: active (running)即表示成功
sudo systemctl status ssh

# 检查 SSH 守护进程是否已经运行
systemctl status sshd

7.3.2   使用scp传递文件

windows和linux之间传输更推荐使用WinSCP工具。

  1. 下载安装PuTTY
  2. 在PuTTY安装路径中打开终端窗口
  3. 拷贝命令:pscp [Linux用户名]@[Linux服务器ip地址]:[Linux服务器源文件] [本地目标文件夹],示例:pscp d:\Old\test.jpg root@ipaddress:/var/www/html/

8   远程控制软件

8.1   ubuntu linux安装远程控制软件

  • 根据系统类型下载官方安装包
  • 安装命令:sudo apt-get install ./todesk-v4.7.2.0-amd64.deb
  • 运行命令:todesk

8.2   arch linux安装远程控制软件

P.S.配置好arch的“国内源”和“社区源”,安装yay。

1
2
3
4
5
#安装todesk
yay -S todesk
#启动服务
sudo systemctl start todeskd.service
sudo systemctl enable todeskd.service
  • 安装teamviewer
1
2
3
4
5
6
#安装teamviewer
yay -S teamviewer
#启动服务
sudo teamviewer daemon start
sudo teamviewer daemon enable
sudo teamviewer daemon restart
  • 安装向日葵
1
2
3
4
5
#安装向日葵
yay -S sunloginclient
#启动服务
sudo systemctl start runsunloginclient.service
sudo systemctl enable runsunloginclient.service

P.S.若遇到todesk打开系统就注销的问题,尝试下先删除teamviewer再重新安装一下,之后再打开todesk测试(yay社区编译版本的todesk和teamviewer可能存在冲突)。

9   开机排障

9.1   ubuntu恢复模式(recovery mode)/linux救援模式(rescue mode)

救援模式相当于使用 SysV 作为默认的服务管理器的 Linux 发行版中的单用户模式。ubuntu和debian系列常用说法就是恢复模式,其他不同类的linux发行版更多常说救援模式。在救援模式下,将挂载所有本地文件系统,仅启动一些重要服务。但是,不会启动正常服务(例如网络服务)。一般系统无法正常启动时,进入该模式修复,例如重置root。

如果同时需要网络的话,在Recovery Menu中选择network模式即可。

  • 若硬盘挂载失败,会自动进入到救援模式中。修正fstab表中正确的硬盘uuid,之后正确恢复到
  • ubuntu摁一次esc键可以进入可grub选择界面,重复摁会导致无法进入的。进入到grub选择界面后,选择ubuntu的高级选项(Advanced options for Ubuntu)并选择recovery mode进入到救援模式。如果没有可选择的界面,尝试重启长摁SHIFT键或者shift+esc组合键看看,出现后可以使用上下方向键,防止自动读秒。

编辑grub进去到救援模式:

  1. 在grub选择菜单中,选择Ubuntu,按e键进入编辑模式
  2. 在以linux开头的一行末尾,删除字符串$vt_handoff并添加字符串systemd.unit=rescue.target
  3. 修改完成后,按Ctrl+X或者F10,在救援模式中启动
1
2
3
4
5
6
7
8
# 从救援模式切换到紧急模式
systemctl emergency

# 重启
systemctl reboot

# exit退出恢复模式,并选择recovery菜单中的resume选项
exit

9.2   ubuntu紧急模式

在紧急模式中不启动任何东西。没有服务启动、没有挂载点、没有建立套接字,什么也没有。只是一个原始的 shell。

从紧急模式切换到救援模式:systemctl rescue

编辑grub进去到救援模式:

  1. 在grub选择菜单中,选择Ubuntu,按e键进入编辑模式
  2. 在以linux开头的一行末尾,删除字符串$vt_handoff并添加字符串systemd.unit=emergency.target
  3. 修改完成后,按Ctrl+X或者F10,在救援模式中启动

9.3   开机出现initramfs(requires a manual fsck)

问题常见于以下常见场景:

  • 异常断电或者关机引起文件数据损坏
  • 系统无法启动
  • 连接的驱动器(包括闪存驱动器/SD卡这类设备)未按预期工作

解决方法:

1
2
3
# 查看提示中说明是哪个硬盘需要执行fsck修复(文件系统一致性检查),例如sda1
fsck /dev/sda1 -y
# 等执行到出现FILE SYSTEM WAS MODIFIED即可reboot系统

10   显卡驱动

10.1   ubuntu 20.04安装英伟达nvidia闭源驱动

10.1.1   运行nvidia-smi可能出现的报错:Failed to initialize NVML: Driver/library version mismatch NVML library version

故障原因:系统检测到驱动和NVML版本不一致的原因导致的。

解决方法:sudo reboot重启系统即可。

11   参考文献

[1] ubuntu开机出现initramfs(requires a manual fsck)解决办法[EB/OL]. https://www.cnblogs.com/yibeimingyue/p/14261416.html.
[2] 如何在 Ubuntu 18.04 中启动到救援模式或紧急模式[EB/OL]. https://zhuanlan.zhihu.com/p/53902139.
[3] Linux下如何查看一块硬盘是不是固态硬盘(SSD)[EB/OL]. https://blog.csdn.net/qq_42303254/article/details/89317618.
[4] Ubuntu 18.04 apt update failed for https repository[EB/OL]. https://askubuntu.com/questions/1229122/ubuntu‑18‑04‑apt‑update‑failed‑for‑https‑repository.
[5] 将/home 目录挂载到新分区(或新硬盘)[EB/OL]. https://blog.51cto.com/runixcn/4605838.
[6] ubuntu修改密码(详细版)「建议收藏」[EB/OL]. https://cloud.tencent.com/developer/article/2159425.
[7] Linux账号和密码文件 /etc/passwd和/etc/shadow[EB/OL]. https://www.cnblogs.com/fuyuanming/p/6519758.html.
[8] What means * and ! at second field of /etc/shadow?[EB/OL]. https://superuser.com/questions/623881/what-means-and-at-second-field-of-etc-shadow.
[9] SSH and locked users[EB/OL]. http://arlimus.github.io/articles/usepam/.
[10] Linux shadow文件中密码的加密方式[EB/OL]. https://www.cnblogs.com/7-58/p/13328148.html.
[11] 使用root ssh登录ubuntu22.4配置[EB/OL]. https://www.cnblogs.com/waldron/p/16864613.html.
[12] Windows连接ssh、scp到Ubuntu服务器[EB/OL]. https://blog.csdn.net/renshy5/article/details/117735410.
[13] Ubuntu下移动硬盘的分区、格式化、挂载操作[EB/OL]. https://zhuanlan.zhihu.com/p/397440213.
[14] Ubuntu ifconfig 查看网卡信息 lo enp2s0 wlp3s0 具体含义[EB/OL]. https://blog.csdn.net/wuyujin1997/article/details/105460929.
[15] arch linux 安装teamviewer,todesk,向日葵,远程软件方法[EB/OL]. https://www.jianshu.com/p/e4b61f754071.
[16] 怎么卸载用 make install 编译安装的软件?[EB/OL]. https://www.zhihu.com/question/20092756.
[17] Ubuntu网络配置:使用DHCP自动配置网卡[EB/OL]. https://blog.csdn.net/VqaEditor/article/details/133605050.
[18] The Ultimate Guide to Recovery and Rescue Mode in Ubuntu[EB/OL]. https://www.fosslinux.com/113044/the-ultimate-guide-to-recovery-and-rescue-mode-in-ubuntu.htm.
[19] 如何启动 Ubuntu 22.04 进入救援/紧急模式[EB/OL]. https://linux.cn/article-14750-1.html.
[20] 【已解决】Failed to initialize NVML: Driver/library version mismatch NVML library version: 535.161[EB/OL]. https://blog.csdn.net/BetrayFree/article/details/137608544.

R.I.P