通过回答我之前的问题(谢谢!)而将其定向到 initramfs ,我一直在努力使 initramfs 工作。我现在可以启动内核并进入 shell 提示符,在那里我可以执行 busybox 命令,这很棒。
这就是我卡住的地方——(至少)有两种生成 initramfs 图像的方法:
第二种方法看起来更简洁,所以我一直在使用它。
仅供参考,这是我目前的文件列表:
dir /dev 755 0 0
nod /dev/console 644 0 0 c 5 1
nod /dev/loop0 644 0 0 b 7 0
dir /bin 755 1000 1000
slink /bin/sh busybox 777 0 0
file /bin/busybox /home/brandon/rascal-initramfs/bin/busybox 755 0 0
dir /proc 755 0 0
dir /sys 755 0 0
dir /mnt 755 0 0
file /init /home/brandon/rascal-initramfs/init.sh 755 0 0
Run Code Online (Sandbox Code Playgroud)
不幸的是,我了解到busybox 需要一长串链接作为其所有不同命令的别名。有没有办法生成所有这些命令的列表,以便我可以将其添加到我的文件列表中?
或者,我可以使用预构建的目录层次结构切换到方法 …
我想在 PS1 上设置时间提示。但是,没有关于 busybox 支持什么符号的文档。
有谁知道吗?以上是我所知道的。
PS1='\u@\h: \w \$'
Run Code Online (Sandbox Code Playgroud) 为了回答我的进程被杀死但我无法理解内核通知,我被指出了一些关于 Linux 上安全注意密钥 (SAK) 的文档。我有一个使用 buildroot 生成的嵌入式系统,它使用busybox了 busybox init 系统。我无法找到rc.local或rc.sysinit在我的系统上的任何地方。我在网上查看过,但找不到任何文档(除了上面的链接),可以告诉我如何确定我的系统的 SAK 是什么。谁能告诉我如何获取这些信息以及是否可以关闭 SAK?由于我的系统是嵌入式的并且与互联网隔离,因此我并不太担心安全漏洞或黑客攻击。SAK 似乎突然弹出并杀死了我的主要嵌入式应用程序,这是完全不可接受的,因此如果我可以将其关闭,它将更好地满足我的需求(即使这意味着我必须重新配置和构建我的内核)
如何以读写方式重新安装特定的设备安装?(一个文件夹)该文件是“只读文件系统”,rw-rr,所以不允许更改权限。我需要替换该文件,然后将权限改回只读。我知道命令
mount -o rw,remount [destination folder]
Run Code Online (Sandbox Code Playgroud)
我知道这种方法不稳定,可能会导致并发症(每次安装都会改变)。所以我必须确保这将重新挂载为只读specific destination folder,而不是设备的每个挂载。我需要在运行系统上执行此操作,而不是测试环境。嵌入式linux系统。那可能吗?
文件夹路径:/etc/foo/bar我需要重新安装/bar文件夹。
编辑:
mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
proc on /proc type proc (rw)
ramfs on /var type ramfs (rw)
sysfs on /sys type sysfs (rw)
tmpfs on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw)
/dev/mtdblock4 on /nvram type jffs2 (rw)
Run Code Online (Sandbox Code Playgroud)
cat /proc/mounts 的输出
cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root …Run Code Online (Sandbox Code Playgroud) 我需要对某些用户输入进行 RegExp 模式测试。这是我需要测试该值的模式。
^([a-z]{2,3})\-([a-z][a-z]*[0-9]*)\-(\d+)$
Run Code Online (Sandbox Code Playgroud)
一个示例匹配是: na-examplename-01
我可用的 shell 是 BusyBox aka ash,所以我没有完整的 bash 功能。
使用 BusyBox 时,RegExp 模式测试有哪些选项?
注意:我不能使用 expr,因为它在我的安装中不可用。
我有以下功能可用:
arp, ash, awk, basename, bash, bunzip2, bzcat, bzip2, cat, chmod,
chown, chvt, clear, cp, crond, crontab, cryptpw, cut, date, dd,
deallocvt, df, dirname, dmesg, dnsdomainname, dos2unix, du, egrep,
eject, env, fbset, fgconsole, fgrep, find, findfs, flock, free, fstrim,
ftpget, ftpput, fuser, getopt, grep, groups, gunzip, gzip, head,
hostname, httpd, hwclock, id, ifconfig, ifdown, ifplugd, ifup, install,
ionice, iostat, …Run Code Online (Sandbox Code Playgroud) 我正在使用在 docker 容器中运行的 alpine linux 来运行 webapp。webapp 应该使用命令行中的 mail 命令发送电子邮件。
为了支持这一点,我安装了如下邮件:
apk add mailx
Run Code Online (Sandbox Code Playgroud)
当我尝试发送消息时,出现以下错误:
bash-4.3# mail foo@bar.com
Subject: test
EOT
Null message body; hope that's ok
bash-4.3# send-mail: applet not found
Run Code Online (Sandbox Code Playgroud)
不知道我做错了什么。任何帮助都受到高度赞赏。
我在嵌入式 Linux 系统上安装了 busybox,它带有一个很棒的小实用程序,名为rx:
rx FILE
Receive a file using the xmodem protocol
Run Code Online (Sandbox Code Playgroud)
这非常适合通过串行终端将文件从 PC 传输到嵌入式系统。但是,我也希望向相反的方向转移。我找不到补充的“tx”实用程序。一个存在吗?
我想制作一个非常小的 linux 操作系统,它只有一个终端界面和基本的命令/应用程序(busybox 是我选择的命令/应用程序)。我不想在我的操作系统上安装安装选项。我只是希望它完全从 RAM 启动并运行。我打算使用 ISO-Linux 作为引导加载程序。没有网络,没有虚拟化支持,没有不必要的驱动程序等。我希望它是非常非常基本的操作系统。我已经从 kernel.org 下载了最新的稳定内核 (v4.5) 源代码并准备好了构建环境。
我的另一个困惑是,默认情况下内核是否具有任何用户界面(shell、终端等),我可以在其中键入命令并查看输出?
我正在使用带有 busybox 的嵌入式 Linux。我想自动运行名为“myApplication”的应用程序(启动后运行级别 5,所有服务均已启动)。
到目前为止我所做的:
::sysinit:/etc/init.d/S90myscript
该脚本包含以下内容:
! /bin/sh
### BEGIN INIT INFO
# Provides: myApplication
# Should-Start: $all
# Required-Start: $remote_fs $network $local_fs
# Required-Stop: $remote_fs
# Default-Start: 5
# Default-Stop: 0 6
# Short-Description: start myprogram at boot time
### END INIT INFO
#
set -e
. /lib/lsb/init-functions
PATH=/root:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin
PROGRAMNAME="myApplication"
case "$1" in
start)
$PROGRAMNAME
;;
stop)
skill $PROGRAMNAME
;;
esac
exit 0
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?符号链接?难道是我做错了什么?
先感谢您
我相信 LibreElec 正在使用某种形式的 BusyBox。我进行了大量搜索,但无法找到可以更改密码规则的位置。由于我的 LibreElec 媒体播放器未连接到互联网,因此使用简短的数字密码感觉很好。这是我的机器,我愿意承担由此产生的任何后果。