GaGa's Blog

One GaGa, One World !

光猫改桥接的好处

众所周知,现在宽带运营商为了方便快捷解决普通家庭的宽带需求,一股脑把路由光猫还有无线 WLAN 任务统统堆给这个所谓的光猫方盒子。夏天天气一热,光猫就过热降频,这也是网络掉线的主要原因之一。

桥接模式

理想的网络拓扑是这样,由光纤进屋,光猫把光信号转化为电信号,再由路由器拨号收发信号和管理设备

Read more »

journalctl -xe是 Linux 系统里常用的日志查看命令,尤其在 systemd 系统(CentOS 7+ / RHEL 7+ / Ubuntu 16+)里。


1. journalctl 是什么

  • journalctl 用来查看 systemd-journald 收集的日志。
  • 日志来源很广:系统内核、systemd 服务、应用程序 stdout/stderr、syslog 等。
Read more »

XFS 是 SGI(Silicon Graphics)在 1994 年开发的 高性能 64 位日志文件系统,现在广泛应用在 Linux(RHEL/CentOS 默认)。它的特点是 B+ 树索引、空间预分配、并发扩展性好


1. XFS 文件系统整体结构

2. 主要组成部分

Read more »

  • XFS 是 **高性能日志文件系统 (journaling file system)**,最早由 SGI 开发(IRIX 使用),后来移植到 Linux。
  • RHEL 7 / CentOS 7 开始,XFS 成为了默认文件系统(替代 ext4)。

核心特性

  1. 日志 (Journal)

    • 提供崩溃恢复能力(metadata 日志,不记录文件内容)。
    • 避免 fsck 扫描整个磁盘,恢复更快。
  2. 大文件支持

    • 单文件最大支持 8EB(Exabyte),远大于 ext4(16TB)。
    • 单个文件系统最大支持 500TB(RHEL 7 默认限制)。
  3. 高并发 & 性能优化

    • 基于 B+ 树 管理空闲空间、inode、目录。
    • 适合高并发、多线程 I/O 场景。
  4. 在线操作

    • 支持 在线扩容(growfs)。
    • ⚠️ 不支持在线缩容(只能新建再迁移数据)。
  5. 延迟分配 (Delayed Allocation)

    • 数据写入延迟分配,减少碎片,提升性能。
  6. 一致性保障

    • 元数据日志保证一致性。
    • 数据默认不记录日志(比 ZFS、btrfs 轻量)。
Read more »

read-only file system 通常不是单纯的权限问题,而是 内核把文件系统挂载为只读(ro) 了。


常见原因

  1. 磁盘/文件系统错误

    • 比如 ext4 的 journal 出错,系统会保护性地 remount 为只读。

    • 查看 dmesg / journalctl -xe 常能看到类似:

      EXT4-fs error (device sda1): ext4_journal_check_start:56: Detected aborted journal
      Remounting filesystem read-only
      
  2. 硬件故障

    • 磁盘坏块、SATA/RAID 控制器异常。
    • USB/SD 卡损坏(嵌入式系统常见)。
  3. 手动挂载参数

    • /etc/fstab 或者 mount 命令里用了 ro
  4. 容器或特殊场景

    • Docker/K8s 挂载了只读卷。
    • LiveCD 启动镜像,本身就是只读。
Read more »

CentOS(以及基于 RPM 的系统,比如 RHEL、Rocky、Alma 等)里,yum/dnf 的软件包签名检查机制主要是基于 GPG 签名来保证软件包来源可信、未被篡改。


1. 签名检查的原理

  • 每个 RPM 包在构建时,可以用 私钥进行 GPG 签名,签名信息写入 RPM 包头。
  • 用户端(yum/dnf)会用本地存储的 公钥进行验证。
  • 如果签名不合法、包被篡改、或者公钥缺失,安装/更新就会报错。
Read more »

Rocky Linux 9.5(对应 RHEL9 内核系列,大概是 5.14.x 的长期支持内核),而且我看到:

1
2
3
4
net.ipv4.tcp_tw_reuse = 2
net.ipv4.tcp_timestamps = 1
net.ipv4.ip_local_port_range = 10000 65535
net.ipv4.tcp_fin_timeout = 15

解释为什么会出现 2

Read more »

git命令解释

1
git fetch --tags && git checkout release/20250825

1. git fetch --tags

  • --tags 只会拉取所有 tag 信息,并不会同步远程分支(除非本地没有某个分支,它会顺带拉下来)。
  • 如果你要同时更新 分支tag,建议这样写:
Read more »
0%