标签: arch-linux

QEMU-KVM Linux 命令行虚拟化

我最近发现它qemu-kvm有一个非常有前途的-curses选项,它不是启动 X 窗口,而是显示来自来宾的不错的 ncurses 输出,适合从命令行管理 Linux 来宾(或者,更令人满意的是,在屏幕会话中,甚至通过 ssh)。

所以我尝试了这个,发现我的 Arch Linux 客户机进入了“图形模式”,使这个功能无用。据我所知,问题是来宾内核初始化帧缓冲区以允许高于 80x60 的字符分辨率(和漂亮的图形)。所以我继续寻找一种方法来阻止来宾内核启动帧缓冲区。我尝试了各种内核参数,nomodeset, fb=false, vga=0x0FF, vga=ask(随后选择了VGA一个VESA模式而不是模式),但无济于事:每次都qemu-kvm -curses报告在来宾上处于“图形模式”(在初始启动菜单之后),并且我我无法从主机上的命令行终端与来宾交互。

有没有什么简单的方法可以在不更改内核构建参数的情况下将访客内核保持在它启动时的相同模式(无帧缓冲区)?如果没有,我应该更改哪些内核构建选项来编译没有帧缓冲区支持的内核?有没有更好的方法可以在纯文本模式下从主机上的终端获取 VM 登录(例如,适合在主机上的屏幕会话中运行),而无需在来宾上运行 sshd?

linux arch-linux qemu kvm-virtualization

7
推荐指数
1
解决办法
3860
查看次数

/bin/bash shell 中未加载 bashrc

当我通过 ssh 进入服务器 (4.3.3-2-ARCH) 时,我的 .bashrc 没有加载(但是,我可以通过采购它来手动加载它)。

我的主文件夹中没有任何其他文件,例如 .profile。外壳也正确

$ echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud)

当我使用 登录时ssh -t myserver /bin/bash,我的 .bashrc 已正确加载。

在 SSH 详细模式下,我确实看到 /etc/bash.bashrc 和 ~/.bashrc 是使用最后一个命令加载的。使用默认的 ssh 命令时,它们都没有被加载...

使用默认 ssh 命令时,我应该配置什么来加载 .bashrc(和 /etc/bash.bashrc)?

ssh bashrc arch-linux

7
推荐指数
1
解决办法
7833
查看次数

如何删除根CA证书?

我正在尝试删除根 CA 证书,但trust anchor --remove官方Red Hat 8 文档中指定的命令给出了只读错误。

sudo trust anchor --remove --verbose "pkcs11:id=%c6%41%4f%df%64%5d%6c%2c%7b%ca%bc%bd%3e%b2%d4%85%cd%59%a7%49;type=cert"

(p11-kit:2482) remove_all: removing certificate: 19
p11-kit: couldn't remove read-only certificate
Run Code Online (Sandbox Code Playgroud)

文档中没有任何关于此的内容。

linux redhat centos arch-linux ssl-certificate

7
推荐指数
1
解决办法
3万
查看次数

在 git 中使用符号链接

我曾经将我的系统配置文件全部放在一个目录中以便更好地管理,但现在我需要对其使用一些版本控制。

但问题是 git 不理解指向存储库外部的符号链接,并且我无法反转角色(将真实文件放在存储库上,符号链接放在正确的路径上),因为读取了一些文件在内核加载之前。

我认为我可以使用 unison 来同步 repo 中的文件及其路径,但这并不实用。并且硬链接可能会被破坏。任何的想法 ?

symbolic-link git arch-linux

6
推荐指数
1
解决办法
2万
查看次数

将 shell 脚本置于 systemd 控制之下

假设我有一个这样的 shell 脚本:-

#!/bin/sh
# cherrypy_server.sh

PROCESSES=10
THREADS=1 # threads per process
BASE_PORT=3035 # the first port used
# you need to make the PIDFILE dir and insure it has the right permissions
PIDFILE="/var/run/cherrypy/myproject.pid"
WORKDIR=`dirname "$0"`
cd "$WORKDIR"

cp_start_proc()
{
 N=$1
 P=$(( $BASE_PORT + $N - 1 ))
 ./manage.py runcpserver daemonize=1 port=$P pidfile="$PIDFILE-$N" threads=$THREADS request_queue_size=0 verbose=0
}

cp_start()
{
 for N in `seq 1 $PROCESSES`; do
  cp_start_proc $N
 done
}

cp_stop_proc()
{
 N=$1
 #[ -f "$PIDFILE-$N" ] && kill `cat …
Run Code Online (Sandbox Code Playgroud)

bash arch-linux init.d systemd

6
推荐指数
1
解决办法
1万
查看次数

sudo 拒绝正确的密码

sudo(我已配置为要求输入密码)拒绝我的密码(就像我输入错误一样)我绝对没有输入错误。我暂时将密码更改为仅字母字符,并且在同一个终端中以纯文本格式看起来不错。我的用户名是这样配置的:

myusername ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

我使用的是我的密码,而不是 root 密码,它们是不同的。可以肯定的是,我已经尝试了两者(即使我知道 root 密码不是我应该使用的) - 都不起作用。

我另外将自己添加到“wheel”组中,并包含以下行:

%wheel ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

我有点束手无策了。我不知道什么会导致它表现得好像在接受我的密码,但随后拒绝了它。无论是在终端 shell 还是通过 X11 登录管理器,我都可以使用相同的密码登录。

linux su sudo arch-linux

6
推荐指数
2
解决办法
1万
查看次数

Nginx 无权访问具有相同所有权的文件

我刚刚在 Archlinux 机器上安装了 nginx 并遇到了这个问题:

Nginx 被配置为作为"nginx"运行,这是我添加的一个新用户/组,在/etc/nginx/nginx.conf

user nginx nginx;
Run Code Online (Sandbox Code Playgroud)

对于双重检查:

$ ps aux | grep nginx
nginx     9678  0.0  0.5  28472  2856 ?        S    17:37   0:00 nginx: worker process
nginx     9679  0.0  0.5  28472  2856 ?        S    17:37   0:00 nginx: worker process
root     31912  0.0  0.6  28084  3364 ?        Ss   17:24   0:00 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid; error_log stderr;
Run Code Online (Sandbox Code Playgroud)

服务器的根目录位于:

    location / {
            root   /home/lamnk/sites/host.com;
            index  index.html index.htm;
    }
Run Code Online (Sandbox Code Playgroud)

并且文件的所有者也设置为nginx

$ …
Run Code Online (Sandbox Code Playgroud)

nginx chmod arch-linux file-permissions http-status-code-403

6
推荐指数
1
解决办法
4万
查看次数

挂载点不存在,尽管创建了它

我正在尝试在 Virtualbox VM 上安装 Arch。我正在关注本指南视频。不确定是否相关,但 VDI 文件位于外部硬盘驱动器上。

我根据视频创建了 3 个分区:

  1. /dev/sda1 linux-swap (~5 GB)
  2. /dev/sda2 ext4(~10 GB)
  3. /dev/sda3 ext4(~35 GB)

很早就,视频建议运行一些命令:

# mkdir /mnt/home
# mount /dev/sda2 /mnt
# mount /dev/sda3 /mnt/home
Run Code Online (Sandbox Code Playgroud)

但是最后一个命令给了我以下错误:

mount: mount point /mnt/home does not exist
Run Code Online (Sandbox Code Playgroud)
  • 第一个问题: Arch 指南没有说我应该像视频那样对磁盘进行分区。我应该放弃花哨的分区方案吗?
  • 第二个问题:如果我应该采用这个分区方案,我该如何解决这个错误,为什么会首先发生?

linux partition installation operating-system arch-linux

6
推荐指数
1
解决办法
8万
查看次数

initramfs systemd 服务的内省 - 如何?

背景

  • 我正在运行 ArchLinux,使用 systemd 二进制文件启动必要的服务作为 initramfs 的一部分(root fs 解密、挂载等)。
  • 我想检查一下作为这个阶段的一部分启动了哪些 systemd 单元,以及何时启动。
  • systemd-analyze plot 只显示切换根发生后所有单元的时间图。
  • 交换机根单元(定义为 initrd 引导序列中的最后一个单元)状态:

    [Service]
    # ...
    ExecStart=/usr/bin/systemctl --no-block --force switch-root /sysroot
    # ...
    
    Run Code Online (Sandbox Code Playgroud)
  • switch-root 系统命令上的 systemctl 手册页有这样的说法:

    switch-root ROOT [初始化]

    切换到不同的根目录并在其下执行一个新的系统管理器进程。这旨在用于初始 RAM 磁盘(“initrd”),并将从 initrd 的系统管理器进程(又名“init”进程)过渡到从实际主机卷加载的主系统管理器进程。此调用需要两个参数:将成为新根目录的目录,以及在其下作为 PID 1 执行的新系统管理器二进制文件的路径。如果省略后者或空字符串,将自动搜索 systemd 二进制文件用于并用作初始化。如果省略系统管理器路径,等于空字符串或与 systemd 二进制文件的路径相同,则 initrd 的系统管理器进程的状态将传递给主系统管理器,这允许稍后对所涉及服务的状态进行自省在 initrd 启动阶段。

    然后在 initrds 问题上保持沉默......

启动后,我如何内省 initrd 启动阶段所涉及的服务状态,如上面推断的那样,或者发现什至运行了哪些单元(因为有些是动态生成的)?

linux boot arch-linux initramfs systemd

6
推荐指数
1
解决办法
1109
查看次数

由于 /proc/sys/net/netfilter/nf_conntrack_max 的权限被拒绝问题,kube-proxy 不会在 Minikube 中启动

更新 Arch Linux (sudo pacman -Syu) 并重启系统后,由于 kube-proxy 导致 Minikube 无法启动。日志显示它正在尝试修改,/proc/sys/net/netfilter/nf_conntrack_max但遇到了权限被拒绝的问题。

我试图运行,sudo chmod 777 /proc/sys/net/netfilter/nf_conntrack_max但系统不允许我。我也删除~/.minikube并重新开始,但它仍然拒绝工作。启动时同样的问题kind。谁能告诉我如何解决这个问题?

$ kubectl get pods -n kube-system

NAME                               READY   STATUS    RESTARTS   AGE
coredns-74ff55c5b-2hkpd             0/1     Running   0          22s
etcd-minikube                      0/1     Running   0          30s
kube-apiserver-minikube            1/1     Running   0          30s
kube-controller-manager-minikube   0/1     Running   0          30s
kube-proxy-qhhx9                   0/1     Error     2          22s
kube-scheduler-minikube            0/1     Running   0          30s
storage-provisioner                1/1     Running   0          35s

Run Code Online (Sandbox Code Playgroud)
kubectl logs kube-proxy-qhhx9 -n kube-system

I0511 04:47:08.189373       1 node.go:172] Successfully retrieved …
Run Code Online (Sandbox Code Playgroud)

networking kernel arch-linux kubernetes

6
推荐指数
2
解决办法
2475
查看次数