如何安全地卸载 Linux STB 上的网络共享而不崩溃(我收到 GSOD)?

如何安全地卸载 Linux STB 上的网络共享而不崩溃(我收到 GSOD)?

我有一个名为梦之盒C:\梦盒与群组共享的每个人在Windows中。我已将其安装到/硬盘在使用 Telnet (PuTTY) 的具有 OpenDreambox (OpenEmbedded) 的基于 Linux 的 STB 上。

我这样做是为了使机顶盒能够将电视节目录制到我的电脑上,而无需专用的 eSATA 磁盘驱动器。

我现在希望撤消此操作,因为我想为此使用另一台电脑并停止使用这台电脑。

这是我通过 telnet 连接到盒子并登录后使用的命令:

cd /
umount -t cifs

这个命令被接受了。但我仍然可以按机顶盒遥控器上的“录制”按钮并弹出录制菜单。但如果我选择记录记录符号将开始在信息栏上闪烁,但实际上没有文件记录到我的网络共享中。所以这有点...只是有点...有效...

另外,当我停止录音时,我得到了GSOD绿屏死亡)向我展示了一些基本的崩溃信息,并告诉我将日志发送给制造商的电子邮件地址。它还表示必须重新启动。但我认为它实际上并没有重新启动。所以当我去菜单,待机/重启,并选择重新开始我可以看到齿轮动画,就好像它正在加载设置一样,然后我再次得到相同类型的 GSOD。我认为它根本没有完全重启。我已经重复了很多次,每次都获得 GSOD。然后我将其关闭电源并重新打开,启动后我又遇到了同样的问题。

以下是我为实现此目的所做的步骤:

1. PuTTY start
2. Connect to 192.168.0.107
3. Log in as root
4. cd /
5. mkdir /hdd/movie
6. mount -t cifs -o username=*,password=* //192.168.0.101/dreambox /hdd
7. cd /hdd
8. ls (showed nothing - empty folder)

另外,Linux 机器正在运行 BusyBox,据我了解,这是为其提供 shell 命令的包。我提到这一点是因为这个 shell 似乎不支持常规 Linux 发行版上的所有 shell 命令。

我首先尝试了这个命令:

umount -t cifs -t cifs -o username=*,password=* //192.168.0.101/dreambox

这是正确的语法吗?

这与我用来挂载的命令是相同的,只是这是umount卸载的命令。它不起作用,它没有找到目录、文件或设备(不确定确切的词)。所以我决定卸载所有东西cifs(如上所示),它起作用了,但导致 Linux 盒子出现问题。

我现在再次执行了相同的命令:

mount -t cifs -o username=*,password=* //192.168.0.101/dreambox /hdd

它已安装完毕,我不再收到任何 GSOD 并且我可以再次录制。

但我该如何永久阻止它呢?...

我认为这与不良参考资料有关。有些东西引用了我的网络共享,当我卸载它时,它不再存在,这反过来又导致 Linux 开始出现故障。

FWIW,这是我的内容系统表文件在/etc/fstab

rootfs               /                    auto       defaults              1 1
proc                 /proc                proc       defaults              0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
usbfs                /proc/bus/usb        usbfs      defaults              0 0
/dev/mtdblock2       /boot                jffs2      ro                    0 0
tmpfs                /var                 tmpfs      defaults              0 0
tmpfs                /tmp                 tmpfs      defaults              0 0
/dev/sda1            /media/hdd           auto       defaults              0 0

在第一次尝试在框中安装共享时,我确实使用了一组不同的命令。为了使其在重新启动时安装,我编辑了此文件。但我已经撤消了这些更改,所以这应该不再有任何影响。您在上面看到的是 fstab 文件默认的样子。

哦,对了.../hdd实际上重定向到/media/hdd.因此,movie我在此过程中创建的文件夹实际上位于/media/hdd/movie而不是/hdd/movie(步骤 5. mkdir /hdd/movie)。

答案1

我已经整理出来了!

cd /
fuser /hdd
kill 6088
shutdown -r now

我不确定是否有必要从cd根源上解决,但无论如何我已经这样做了。为fuser /hdd您提供使用该设备或文件夹的进程的 PID(进程 ID)。在本例中为 6088。PIDkill后的命令将停止该进程。

shutdown -r now命令重新启动系统。不过,没有必要使用,您只需拿起遥控器,进入“菜单”、“待机/重启”并选择“重启”即可。这些步骤适用于 Enigma2 上的 Dreambox,您的 STB 可能有所不同。它应该正常重新启动,没有任何错误。

我首先通过/media/hddFTP 删除了文件夹的内容movie,然后删除了文件夹本身。从它的外观来看,它试图记录到我已经安装的 Windows 共享,并且由于它被卸载,所以它试图记录到其只有 64 MB 的内部存储器。而且它很快就满了,所以基本上内存不足了。我认为这是崩溃的主要原因之一,即使是在重新启动时也是如此。所以你可能还想先摆脱这些东西。

现在重启工作正常,当我按下录制按钮时,它只是提示没有连接硬盘,这是正常的。

请随意给我一个不涉及fuserkill命令的答案。在 Linux 上卸载网络共享的正确方法是什么?就目前而言,这对我来说还可以。

相关内容