linux problems

[toc]

挂载磁盘导致无法进入系统

拔出新加的磁盘,修改 /etc/fstab ,使用 UUID 区分盘符,示例如下。

使用 sudo 命令反应慢

  • /etc/hosts 中没有 hostname 的记录,在 /etc/hosts 中添加 127.0.0.1 <hostname>

ssh key 免密登录失败

生成公钥和密钥

1
2
3
ssh-keygen -t ras -C your@email.com

# ~/.ssh/id_rsa & ~/.ssh/id_rsa.pub

配置

将生成的 ~/.ssh/id_rsa.pub 内容附加到需要登录机器的 ~/.ssh/authorized_keys 文件后面。

登录

1
ssh remote-host

登录失败

1
2
3
4
5
6
# Permission denied (publickey).
## 查看远程机器文件权限
chmod 700 /home/$OS_USER/.ssh
chmod 600 /home/$OS_USER/.ssh/authorized_keys
chmod 600 /home/$OS_USER/.ssh/config
chmod 600 /home/$OS_USER/.ssh/id_rsa

设置语言和地区

~/.bash_profile~/.zshrc 中添加如下内容,具体文件视使用的 shell 而定。

1
2
3
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

df 磁盘用满但 du 显示还有空间

1
2
3
#lsof | grep delete
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
intercept 14265 root 3u REG 259,1 227432595897 54608901 /data/intercept/access.log (deleted)

/data/intercept/access.log 日志占用 210G 容量,但是已经被删除。

使用不同网关导致配合端口转发失效

Shell 登录慢

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 调试
$ bash --login --verbose
...
export PS1="[\u@${Green}\H${ENDCOLOR}:${Brown}$(ips)${ENDCOLOR} \W]\\$" # 在这个位置卡很久

# 原因
## ips 命令卡住的可能性比较大, 手动执行 ips
## 果然会卡住

$ which ips
ips ()
{
curl -s http://169.254.169.254/latest/meta-data/public-ipv4
}

# 用的阿里云机器, 修改为下面的命令
$ sudo vim /etc/profile
# 修改 function ips() ... 为如下
function ips() {
GET http://100.100.100.200/latest/meta-data/eipv4
}

NVME 磁盘控制器挂掉

错误

1
nvme nvme0: controller is down; will reset: CSTS=0xffffffff, PCI_STATUS=0x10

解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 临时
$ sudo apt install nvme-cli
$ sudo nvme set-feature -f 0x0c -v=0 /dev/nvme0
# 验证
$ sudo nvme get-feature -f 0x0c -H /dev/nvme0
get-feature:0xc (Autonomous Power State Transition), Current value:00000000
Autonomous Power State Transition Enable (APSTE): Disabled

# 持久化
$ vim /etc/default/grub
# 修改 GRUB_CMDLINE_LINUX_DEFAULT
GRUB_CMDLINE_LINUX_DEFAULT="quiet nvme_core.default_ps_max_latency_us=0" # 多个值用空格分隔
# 更新 grub, 重启生效
$ sudo update-grub

参考

移动 /usr/lib64 导致命令失效

操作 mv /usr/lib64 /usr/lib64back 后,几乎所有命令都失效。

1
2
#mv lib64back lib64
-bash: /bin/mv: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: 没有那个文件或目录

使用如下命令恢复。

1
/usr/lib64back/ld-linux-x86-64.so.2 --library-path /usr/lib64back /usr/bin/cp /usr/lib64back /usr/lib64 -fr