我正在编译自己的 3.14 内核。我担心我可能遗漏了一些重要的网络功能来使 DNS 正常工作。
我无法解析域名。我可以 ping 我的 DNS 服务器。我可以在其他机器上使用该 DNS 解析,所以我知道它不是服务器。
~ # cat /etc/resolv.conf
nameserver 192.168.13.5
~ # nslookup google.com
Server: 192.168.13.5
Address 1: 192.168.13.5
nslookup: can't resolve 'google.com'
~ # ping -c 1 google.com
ping: bad address 'google.com'
~ # ping -c 1 192.168.13.5
PING 192.168.13.5 (192.168.13.5): 56 data bytes
64 bytes from 192.168.13.5: seq=0 ttl=128 time=0.382 ms
--- 192.168.13.5 ping ststistics ---
1 packets transmitted, 1 packets recieved, 0% packet loss
reound-trip min/avg/max = 0.382/0.382/0.382 ms …
Run Code Online (Sandbox Code Playgroud) 我正在为嵌入式系统构建磁盘映像(放置在 4GB SD 卡上)。我希望系统有两个分区。一个“根”(200Mb) 和一个“数据”分区(800Mb)。
我用 dd 创建了一个空的 1GB 文件。然后我使用 parted 来设置分区。我将它们每个都安装在一个循环设备中,然后将它们格式化;ext2 代表“根” ext4 代表“数据”。将我的根文件系统添加到“Root”分区并将“Data”留空。
这就是问题所在。我现在被困在一个 1GB 的图像上,上面只有 200MB 的数据。理论上,我不应该能够将图像截断为 .. 201MB 并且仍然可以安装文件系统吗?不幸的是,我没有发现这种情况。
我记得过去曾使用过 Freescale 的构建环境,该环境用于创建 30Mb 图像,该环境将具有使用整个 4GB sdcard 的分区。不幸的是,此时,我无法找到他们是如何做到的。
我已经阅读了 ext 文件系统的磁盘格式,如果第一个超级块之后没有任何数据(备份超级块和未使用的块表除外),我想我可以在那里截断。
不幸的是,当我这样做时,安装系统吓坏了。然后我可以运行 FSCK,恢复超级块和块表,然后可以挂载它就没有问题了。我只是不认为那应该是必要的。
也许不同的文件系统可以工作?有任何想法吗?
谢谢,
编辑
更改分区以读取文件系统。分区仍然存在并且没有改变,但是截断图像后文件系统被破坏了。
编辑
我发现这种情况是,当我将文件截断到刚好大于第一组“数据”分区超级块和索引节点/块表的大小时,(在数据块范围内的某处)文件系统无需执行即可卸载一个 fsck 来恢复其余的超级块和块/inode 表
我有一个用繁忙的盒子构建的嵌入式系统。我允许名为“app”的用户将程序/脚本下载到目录中,并且它将在启动时运行。
应该允许程序设置日期。它以“应用程序”用户身份运行。
如何设置busybox以允许非root用户'app'设置日期?我试图添加 suid 权限:chmod u+s /bin/busybox.nosuid
但它不起作用。另外,busybox 对为什么有 nosuid 和 suid 版本的原因很不满意,但显然它们是用不同的应用程序编译的。系统上没有“sudo”。
root# which date
/bin/date
root# ls -l /bin/date
lrwxrwxrwx 1 root root 19 Apr 22 2016 /bin/date -> /bin/busybox.nosuid
root# ls -l /bin/busybox.nosuid
-rwsr-xr-x 1 root root 14 Apr 22 2016 /bin/busybox.nosuid
root# date
Thu Jan 15 03:43:24 CET 1970
root# date -s 10:30
Thu Jan 15 10:30:00 CET 1970
root# date
Thu Jan 15 10:30:01 CET 1970
root# su app
app$ date
Thu Jan 15 …
Run Code Online (Sandbox Code Playgroud)