在我的 bash 脚本中,我挂载分区,检查它们,将文件复制到它们,然后卸载。当脚本挂载分区时,Nautilus 会弹出一个窗口,显示分区并窃取焦点。这是我想要避免的。
注意:我知道我可以在系统设置、详细信息、可移动媒体Never prompt or start programs on media insertion中更改此行为,但我不想更改行为,例如,如果插入了 USB 记忆棒,我只想在我的 bash 脚本中阻止它. 由于此脚本在其他用户的计算机上运行,我无法修改这些设置(在脚本中),因为如果它异常终止,它将保留修改后的设置(我也不认为应该这样做)。
实际上这个自动显示似乎并不一致。如果我从终端执行完全相同的命令,Nautilus 不会显示,而且我知道我的脚本中还有其他未显示的安装。那么是什么原因造成的呢?这是代码的示例(两者都会导致弹出单独的 nautilus 窗口):
mount $dev $target
mkdir -p $target/home
mount $homedev $target/home
Run Code Online (Sandbox Code Playgroud)
我有兴趣了解挂载向 Nautilus 发出信号的过程以及发生这种情况的原因(如果我从终端挂载分区则不会发生)。防止这种情况发生的最佳方法是什么。
我注意到这种行为从 11.10 版开始(如果我没记错的话)。我目前运行的是 12.04,但该脚本必须适用于所有受支持的版本。我不认为该解决方案应该涉及修改系统设置(这可能因版本而异)。例如,如果您查看挂载分区的其他内容(如 os-prober),则在挂载不同分区时不会弹出 nautilus 窗口。
该脚本可以在这里找到。而这里的部分地方鹦鹉螺持久性有机污染物。我认为它也会出现在这里,但我一直将测试重点放在第一个链接上。这是它不会弹出的地方,在其他挂载之前调用 - 请注意,我已将第一个挂载重写为 --read-only 并在 if 语句中,这没有区别。
理想情况下,答案将解释为什么会发生这种情况以及如何防止它发生,换句话说,解释为什么脚本mount内的处理方式与终端发出的脚本不同。如果它是一个完整的解决方案并且可以支持所有桌面环境(ubuntu、kubuntu、xubuntu、lubuntu 等),那么一个好的解决方法也将被接受——我也想避免测试的指数增长来验证它。
提前致谢
============
根据papashou的链接解决方案:
add_udev_rules ()
{
for i in "$dev" "$homedev" "$bootdev" "$usrdev"; do
if [ -n …Run Code Online (Sandbox Code Playgroud) 当我在 Ubuntu 14.10 beta 2 中启动时,我在屏幕上看到以下消息:
error while reading descriptor: broken pipe:
Run Code Online (Sandbox Code Playgroud)
然后屏幕变黑片刻,然后继续进入登录屏幕。
任何人都可以告诉我这条消息的含义以及我需要做些什么?
我有一台 Wacom Bamboo 数位板 (MTE-450A)。它在 11.10 上开箱即用,甚至滚动功能也能工作(以前不能)。
不幸的是,这四个按钮被分配给我不知道的东西。如何将它们重新配置为我想要的按钮,例如Ctrl+ Z?
我使用 Wubi 与 Windows 并排安装了 ubuntu。我决定卸载 ubuntu 并安装 Kubuntu,我成功地做到了。但是现在当我启动计算机时,Windows 启动管理器显示 3 个选项:
Ubuntu 选项不起作用,但是当我第一次卸载 Ubuntu 时该条目没有被删除。我如何摆脱这个额外的条目?
我正在使用Win8并安装了Ubuntu 12.10 ... GRUB中有一个条目,但选择它 - GRUB再次回来,因此Windows从未启动。我只能启动我的 Ubuntu。
/dev/sda1 * 2048 206847 102400 7 HPFS/NTFS/exFAT
/dev/sda2 206848 123086847 61440000 7 HPFS/NTFS/exFAT
/dev/sda3 123086848 586145789 231529471 7 HPFS/NTFS/exFAT
/dev/sda4 586145790 976771071 195312641 5 Rozszerzona
/dev/sda5 586145792 761929727 87891968 83 Linux
/dev/sda6 761931776 976771071 107419648 83 Linux
Run Code Online (Sandbox Code Playgroud)
sda2 是 Windows 8 分区,sda1 是 Windows 交换(或任何名称)。在 W8 的 GRUB 定制器条目中,如下所示:
insmod part_msdos
insmod ntfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 A456A29B56A26DAC
else
search --no-floppy …Run Code Online (Sandbox Code Playgroud) 安装 Ubuntu 13.04 后,我无法挂载 NTFS 分区。
Error mounting /dev/sda5 at /media/mrxfly/xFLyDiskData:
Command-line `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dmask=0077,fmask=0177" "/dev/sda5" "/media/mrxfly/xFLyDiskData"' exited with non-zero exit status 14: The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sda5': Operation not permitted
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the 'ro' mount option.
Run Code Online (Sandbox Code Playgroud) 我尝试使用 Wubi 在我的计算机上安装 Ubuntu 14.10。安装似乎在 Windows 中工作,并告诉我重新启动。
重新启动 Ubuntu 安装程序后继续安装,直到它停止并显示错误消息:Failed to partition the selected disk with the detail这可能是因为分区表中的主分区太多。
我忘记了安装时使用的密码postgres。它要求为我执行的每个操作输入密码。在这种情况下我能做什么?
我什至尝试删除 postgres 并重新安装它,但它仍然要求输入密码。