Skip to content

Commit 080fd0f

Browse files
committed
chore: lint all md files with autocorrect
1 parent 5c69489 commit 080fd0f

29 files changed

Lines changed: 445 additions & 445 deletions

File tree

content/posts/about_swap_on_linux/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
+++
22
date = '2025-11-01T21:57:31+08:00'
33
draft = false
4-
title = '关于Linux的swap那些事情'
4+
title = '关于 Linux 的 swap 那些事情'
55
+++
66

77
## 引子

content/posts/credit_card/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ title = '信用卡系统初探'
66

77
## 前言
88

9-
最近Gemini的学生优惠很火,直接免费使用15个月(当然现在已经结束了),我之前Google Play绑定了家里人的信用卡,直接就可以过验证,但是有的人只有银联的卡,就没法过验证,我简单了解了一下,做个记录。
9+
最近 Gemini 的学生优惠很火,直接免费使用 15 个月(当然现在已经结束了),我之前 Google Play 绑定了家里人的信用卡,直接就可以过验证,但是有的人只有银联的卡,就没法过验证,我简单了解了一下,做个记录。
1010

1111
## 结算机构
1212

content/posts/csapp/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ title = 'Csapp'
2828
> 使用 `readelf`,会发现这些段的加载到 `2MB` 的整数倍上,是为了内存对齐。
2929
> `ELF` 段头表上面,会看到 `vaddr``paddr`,一般只考虑前者。
3030
31-
在现代操作系统上面,使用 `PIE` (非位置无关可执行文件),所以看到的是4K页的映射,已经没有物理地址的说明了。这样让加载器自动确定地址。
31+
在现代操作系统上面,使用 `PIE` (非位置无关可执行文件),所以看到的是 4K 页的映射,已经没有物理地址的说明了。这样让加载器自动确定地址。
3232

3333
在读写的部分,会发现文件大小和加载后的内存大小不一致,因为 `bss` 段不会加载进去,而是预留八字节。
3434

@@ -38,7 +38,7 @@ title = 'Csapp'
3838

3939
一个相比微机原理更加详细的内存布局图。
4040

41-
在64位系统上面`2^48` 以上的部分保留给内核,`2^48-1` 部分是栈,向低地址增长,共享库位于堆和栈的中间。
41+
在 64 位系统上面`2^48` 以上的部分保留给内核,`2^48-1` 部分是栈,向低地址增长,共享库位于堆和栈的中间。
4242

4343
## PIC (位置无关代码)
4444

content/posts/customizing-my-own-archlinux/index.md

Lines changed: 48 additions & 48 deletions
Large diffs are not rendered by default.

content/posts/dsm_and_pve/index.md

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
+++
22
date = '2025-07-07T21:00:20+08:00'
33
draft = false
4-
title = '黑群晖与PVE折腾小记'
4+
title = '黑群晖与 PVE 折腾小记'
55
+++
66
## 前言
77

88
这是一篇记录自己折腾的过程的文章,可能会随着我的折腾过程补充,可能开会补一点动机或者小技巧之类的,所以你看到的不一定是完整版~
99

10-
## 直通SATA控制器的硬盘SMART修复
10+
## 直通 SATA 控制器的硬盘 SMART 修复
1111

12-
使用PVE直通我的SATA控制器进群晖,发现命令行的SMART的功能不正常,表现就是没法显示其中的详细信息,而且温度显示为0°C。
12+
使用 PVE 直通我的 SATA 控制器进群晖,发现命令行的 SMART 的功能不正常,表现就是没法显示其中的详细信息,而且温度显示为 0°C。
1313

14-
虽然群晖里面显示有温度,但是最新的DSM7.2.2已经没法在桌面端读取SMART信息了,不知道是出于什么考虑。
14+
虽然群晖里面显示有温度,但是最新的 DSM7.2.2 已经没法在桌面端读取 SMART 信息了,不知道是出于什么考虑。
1515

16-
在shell里面是这样的
16+
在 shell 里面是这样的
1717

1818
```
1919
texsd@tnas ~ [2]> sudo smartctl -a /dev/sata1
@@ -47,16 +47,16 @@ Error Counter logging not supported
4747
Device does not support Self Test logging
4848
```
4949

50-
我问了下Gemini,跟我说消费级主板不支持,叫我买LSI卡,我当时想麻烦了,亏我专门找一块4SATA的板子
50+
我问了下 Gemini,跟我说消费级主板不支持,叫我买 LSI 卡,我当时想麻烦了,亏我专门找一块 4SATA 的板子
5151

5252

5353
### 问题解决
5454

55-
我先是一通操作,把SATA控制器直通进Arch虚拟机,发现是能成功读取的。那说明是DSM出了点问题。在RR里面一通乱改添加`smartctl`,本来以为成了,结果接上三块硬盘,一看,只有其中一块是正常的。
55+
我先是一通操作,把 SATA 控制器直通进 Arch 虚拟机,发现是能成功读取的。那说明是 DSM 出了点问题。在 RR 里面一通乱改添加`smartctl`,本来以为成了,结果接上三块硬盘,一看,只有其中一块是正常的。
5656

57-
看了网上一些教程,发现要手动指定设备类型,才能正确读出硬盘的smart信息
57+
看了网上一些教程,发现要手动指定设备类型,才能正确读出硬盘的 smart 信息
5858

59-
群晖手动改了sata盘的名字,不是sd[a-z]了,而是sata[1-9]。所以我得这样获取:
59+
群晖手动改了 sata 盘的名字,不是 sd[a-z]了,而是 sata[1-9]。所以我得这样获取:
6060

6161
```shell
6262
sudo smartctl -d sat -a /dev/sata1
@@ -174,7 +174,7 @@ Selective Self-tests/Logging not supported
174174

175175
得懂能行,更得明白为什么可以这样。
176176

177-
我去翻了`smartctl`的manual,里面关于`-d`是这么写的:
177+
我去翻了`smartctl`的 manual,里面关于`-d`是这么写的:
178178

179179
```
180180
...
@@ -242,51 +242,51 @@ Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
242242
/dev/sata3 [SAT]: Device of type 'sat' [ATA] opened
243243
```
244244

245-
所以问题已经很清晰了,PVE在把SATA控制器直通的时候,识别出了一点问题,没有正确的报告需要使用sat(SCSI to ATA Translation),同时DSM配套的`smartctl`太旧了,猜错了,没有猜到这一个SCSI控制器是需要使用sat来翻译,直接使用SCSI来获取SMART信息,就没法读取到正确的信息。
245+
所以问题已经很清晰了,PVE 在把 SATA 控制器直通的时候,识别出了一点问题,没有正确的报告需要使用 sat(SCSI to ATA Translation),同时 DSM 配套的`smartctl`太旧了,猜错了,没有猜到这一个 SCSI 控制器是需要使用 sat 来翻译,直接使用 SCSI 来获取 SMART 信息,就没法读取到正确的信息。
246246

247-
> 但是为什么是SCSI控制器?我不是把PCIe设备直通吗
247+
> 但是为什么是 SCSI 控制器?我不是把 PCIe 设备直通吗
248248
249-
这还是挺奇妙的,因为PVE很懒,只想加载一个VirtIO SCSI驱动,不想再折腾一个SATA驱动,所以虚拟机看到的,是一个SCSI设备,想猜出是 sat ,得靠点想象力。
249+
这还是挺奇妙的,因为 PVE 很懒,只想加载一个 VirtIO SCSI 驱动,不想再折腾一个 SATA 驱动,所以虚拟机看到的,是一个 SCSI 设备,想猜出是 sat,得靠点想象力。
250250

251-
但是新版的`smartctl`就成功了,~~这就不得不提Arch的滚动更新的优越性了~~
251+
但是新版的`smartctl`就成功了,~~这就不得不提 Arch 的滚动更新的优越性了~~
252252

253253
一些知识补充:
254254

255-
> SCSI并不是为了磁盘而生的,而是一个系统的接口,用于连接大量外围设备的。它的成本早期非常高昂,需要一个独立的SCSI控制器,所以只有高端工作站才用得起。八十年代,IBM兼容机崛起,为了降低成本,人们开发了ATA (IDE),这个控制器的成本低廉,而且控制部分集成在硬盘上,大幅降低了成本。(这就是为什么SAS硬盘没法接在SATA控制器上,但是反过来就可以)
255+
> SCSI 并不是为了磁盘而生的,而是一个系统的接口,用于连接大量外围设备的。它的成本早期非常高昂,需要一个独立的 SCSI 控制器,所以只有高端工作站才用得起。八十年代,IBM 兼容机崛起,为了降低成本,人们开发了 ATA (IDE),这个控制器的成本低廉,而且控制部分集成在硬盘上,大幅降低了成本。(这就是为什么 SAS 硬盘没法接在 SATA 控制器上,但是反过来就可以)
256256
257-
突然想起了*nix和dos的斗争,当年的dos也太简陋了,连用户管理都没有,早年我说这设计那么垃圾的系统,自动补全又没有,用的逆天的反斜杠,怎么当时会抢占那么多市场?
257+
突然想起了*nix 和 dos 的斗争,当年的 dos 也太简陋了,连用户管理都没有,早年我说这设计那么垃圾的系统,自动补全又没有,用的逆天的反斜杠,怎么当时会抢占那么多市场?
258258

259259
但是人家确实打下了市场,就是因为硬件要求低。
260260

261-
所以说当时降本是当时时代的趋势,就算现在SAS阵列卡已经白菜价了,*nix甚至占用比Windows还低,但是前者估计是不太可能回到消费级电子领域了,后者可能还有点希望,得指望deepin和信创了
261+
所以说当时降本是当时时代的趋势,就算现在 SAS 阵列卡已经白菜价了,*nix 甚至占用比 Windows 还低,但是前者估计是不太可能回到消费级电子领域了,后者可能还有点希望,得指望 deepin 和信创了
262262

263263
## 群晖的文件权限管理
264264

265-
我们已经早都知道,传统的Linux权限很简单而且很不方便,只能设置所有者、组和其他的权限,随后拓展出来的ACL规则则很灵活。但是群晖上面没有`setfacl``getfacl`之类的命令,取而代之的是`synoacltool`应该是存了数据库以便web也能够正确使用这些权限
265+
我们已经早都知道,传统的 Linux 权限很简单而且很不方便,只能设置所有者、组和其他的权限,随后拓展出来的 ACL 规则则很灵活。但是群晖上面没有`setfacl``getfacl`之类的命令,取而代之的是`synoacltool`应该是存了数据库以便 web 也能够正确使用这些权限
266266

267-
我从旧NAS迁移过来的数据是使用rsync的,旧nas的权限管理比较混乱,导致所有存储的文件都是UID0(root),迁移过来就造成了一些问题。
267+
我从旧 NAS 迁移过来的数据是使用 rsync 的,旧 nas 的权限管理比较混乱,导致所有存储的文件都是 UID0(root),迁移过来就造成了一些问题。
268268

269-
我不知道群晖是怎么实现网页可以读写的,但是我在shell里面就没法进入这些文件夹,此时就需要修复。
269+
我不知道群晖是怎么实现网页可以读写的,但是我在 shell 里面就没法进入这些文件夹,此时就需要修复。
270270

271-
群晖提供的方便的webui来修改,在共享文件夹的子文件夹右键-属性-权限。此时会显示此共享文件夹默认配置的权限,点击下面的“应用到这个文件夹、子文件夹及文件”,保存。此时群晖就把这个文件夹改成ACL模式,使得在shell里面也能访问
271+
群晖提供的方便的 webui 来修改,在共享文件夹的子文件夹右键 - 属性 - 权限。此时会显示此共享文件夹默认配置的权限,点击下面的“应用到这个文件夹、子文件夹及文件”,保存。此时群晖就把这个文件夹改成 ACL 模式,使得在 shell 里面也能访问
272272

273273
但是我有些疑问:
274274

275-
### 1. 为什么改ACL那么快
275+
### 1. 为什么改 ACL 那么快
276276

277277
> 当您在 File Station 的图形界面中勾选“应用到子文件夹...”时,您不是在运行一个简单的脚本,而是在向 DSM 的核心服务发出一个高级指令。
278278
279279
> 这个指令更像是:“嘿,DSM 内核/存储服务,请你用最高效的方式,把这个 ACL 策略应用到整个文件夹树”。
280280
281281
> DSM 的底层服务接收到这个“批发订单”后,会直接在内核层面或者以最优化的方式遍历文件系统的元数据 (metadata)。它可以批量处理、减少磁盘 I/O、避免不必要的上下文切换,效率远非 chmod -R 可比。
282282
283-
> 摘抄自Gemini的回答
283+
> 摘抄自 Gemini 的回答
284284
285-
### 2. ACL是怎么工作的
285+
### 2. ACL 是怎么工作的
286286

287-
通过ACL管理的权限,我很意外的发现`ls`的显示已经不正常了。先举个例子:
287+
通过 ACL 管理的权限,我很意外的发现`ls`的显示已经不正常了。先举个例子:
288288

289-
ACL规则是这样的
289+
ACL 规则是这样的
290290

291291
```
292292
texsd@tnas /volume1> sudo synoacltool -get 个人数据
@@ -310,7 +310,7 @@ drwxrwxrwx+ 1 root root 86 Jul 8 11:11 个人数据
310310

311311
我看到所有人都是有这个权限的。
312312

313-
guest用`ls`查看权限:
313+
guest 用`ls`查看权限:
314314

315315
```
316316
guest@tnas:/volume1$ ls -lah | grep 个人数据
@@ -319,23 +319,23 @@ d---------+ 1 root root 86 Jul 8 11:11 个人数据
319319

320320
他没有任何权限,自然无法进入。
321321

322-
所以说,ACL实际上改变了每个人看到的`ls`信息,在ACL Mode下`ls`的输出已经不准确了。
322+
所以说,ACL 实际上改变了每个人看到的`ls`信息,在 ACL Mode 下`ls`的输出已经不准确了。
323323

324324
### 3. 虽然说权限已经不准确了,那么所有者和组怎么样?
325325

326-
所有者和组仍然是以创建的用户为准的。谁创建的就是谁和启主要用户组(UID显示的组)。
326+
所有者和组仍然是以创建的用户为准的。谁创建的就是谁和启主要用户组(UID 显示的组)。
327327

328-
### 4. ACL让我整个终端显示都是一片绿,为什么要在POSIX的rwx中设置为777
328+
### 4. ACL 让我整个终端显示都是一片绿,为什么要在 POSIX 的 rwx 中设置为 777
329329

330330
这里有一个小前置知识,如果其他用户可写,那么就会显示为绿色背景,如果文件可执行,就是显示为绿色字体。
331331

332-
因为ACL已经接管了权限管理,所以说POSIX显示的已经不够用了,比如说我上面的例子,有两个组都能访问这个文件夹,这个究竟如何界定?
332+
因为 ACL 已经接管了权限管理,所以说 POSIX 显示的已经不够用了,比如说我上面的例子,有两个组都能访问这个文件夹,这个究竟如何界定?
333333

334-
如果使用770,那么指的是users才有这个权限,实际上并不是。
334+
如果使用 770,那么指的是 users 才有这个权限,实际上并不是。
335335

336-
所以,ACL让每个人看到的东西不一样,这里的777表示有极大的权限,反之没权限的为000,不是传统意义上面的421了
336+
所以,ACL 让每个人看到的东西不一样,这里的 777 表示有极大的权限,反之没权限的为 000,不是传统意义上面的 421 了
337337

338-
~~我明白为什么fish不兼容POSIX了,因为确实不符合现代的一些实践了~~
338+
~~我明白为什么 fish 不兼容 POSIX 了,因为确实不符合现代的一些实践了~~
339339

340340

341341
## 参考

0 commit comments

Comments
 (0)