Di skrip bash saya, saya memasang partisi, memeriksanya, menyalin file, dan meng-unmount. Ketika skrip mount partisi, Nautilus muncul dengan Window yang menunjukkan partisi dan mencuri fokus. Ini adalah sesuatu yang ingin saya hindari.
Catatan: Saya tahu saya bisa mengubah perilaku ini di Pengaturan sistem, Detail, Media yang dapat dilepas Never prompt or start programs on media insertion
,, tetapi saya tidak ingin mengubah perilaku, misalnya jika stik USB dicolokkan, saya hanya ingin mencegahnya di skrip bash saya . Karena skrip ini berjalan pada komputer pengguna lain, saya tidak dapat mengubah pengaturan ini (dalam skrip) karena jika diakhiri secara tidak normal akan meninggalkan pengaturan yang diubah di tempat (saya juga tidak percaya itu harus dilakukan untuk melakukan ini).
Sebenarnya tampilan otomatis ini sepertinya tidak konsisten. Jika saya melakukan perintah yang sama persis dari terminal, Nautilus tidak muncul, dan saya tahu ada mount lain di skrip saya yang tidak muncul. Jadi apa yang menyebabkan ini? Berikut adalah contoh kode (keduanya menyebabkan jendela nautilus terpisah muncul):
mount $dev $target
mkdir -p $target/home
mount $homedev $target/home
Saya tertarik untuk memahami proses dimana sinyal mount Nautilus dan mengapa ini terjadi (ketika tidak jika saya me-mount partisi dari terminal). Dan apa cara terbaik untuk mencegah hal ini terjadi.
Saya perhatikan perilaku ini dimulai pada rilis 11.10 (jika saya ingat dengan benar). Saya sedang menjalankan 12,04, tetapi skrip harus bekerja pada semua rilis yang didukung. Saya tidak percaya solusinya harus melibatkan memodifikasi pengaturan sistem (yang mungkin berbeda antara rilis). Misalnya, jika Anda melihat hal-hal lain yang me-mount partisi (seperti os-prober), tidak ada jendela nautilus yang muncul ketika me-mount partisi yang berbeda.
Skrip dapat ditemukan di sini . Dan inilah bagian di mana Nautilus muncul. Saya pikir ini juga muncul di sini , tetapi saya telah memfokuskan pengujian saya pada tautan pertama. Ini adalah di mana ia tidak muncul, yang disebut sebelum mereka tunggangan lain - catatan saya sudah menulis ulang yang pertama sebagai --read-satunya dan dalam sebuah pernyataan jika dan tidak ada bedanya.
Idealnya, jawaban akan menjelaskan mengapa hal ini terjadi dan bagaimana cara mencegahnya, dengan kata lain, menjelaskan mengapa skrip mount
diperlakukan secara berbeda dengan yang dikeluarkan dari terminal. Solusi yang baik juga akan diterima jika itu adalah solusi yang sepenuhnya dijelaskan dan praktis yang dapat mendukung semua lingkungan desktop (ubuntu, kubuntu, xubuntu, lubuntu dll) - Saya juga ingin menghindari peningkatan eksponensial dalam pengujian untuk memverifikasinya.
Terima kasih sebelumnya
============
Solusi sesuai tautan papashou :
add_udev_rules ()
{
for i in "$dev" "$homedev" "$bootdev" "$usrdev"; do
if [ -n "$i" ]; then
block=${i#/dev/}
echo "KERNEL==\"""$block""\",ENV{UDISKS_PRESENTATION_HIDE}=\"1\"" >> "$wubi_move_dir"/wubi_move.rules
fi
done
cp "$wubi_move_dir"/wubi_move.rules /etc/udev/rules.d/wubi_move.rules
udevadm trigger > /dev/null 2>&1
}
remove_udev_rules ()
{
rm /etc/udev/rules.d/wubi_move.rules
rm "$wubi_move_dir"/wubi_move.rules
udevadm trigger > /dev/null 2>&1
}
Ini mencapai hasil yang diinginkan, tetapi terasa seperti pendekatan palu godam. Saya percaya mungkin ada fine-tuning di udev yang akan memungkinkan partisi untuk tetap ditampilkan di Nautilus (dan browser file lainnya) tanpa muncul ketika sudah terpasang. Ngomong-ngomong jika ada yang ingin mencoba ini, skrip berikut akan menunjukkan efek pop-up nautilus:
mkdir -p /tmp/testmount
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
rmdir /tmp/testmount
Saya akan terus bermain udev
dan saya juga telah mengajukan bug , karena ini tidak masuk akal untuk partisi yang tidak dimasukkan untuk bertindak seperti USB / kartu media yang dimasukkan saat mount. Juga udevadm trigger
bukan operasi murah yang muncul (setidaknya 12,04) untuk sementara membekukan segalanya.
Jadi, secara ringkas, saya memiliki solusi yang bisa diterapkan (terima kasih kepada semua orang yang telah membantu), yang mungkin atau mungkin tidak saya terapkan (belum yakin); tapi aku akan terus mencari yang lain. Terima kasih
Jawaban:
Coba saran ini: http://www.worldofnubcraft.com/969/hide-your-disks-or-partitions-from-nautilus/
Saya cukup yakin itu ada hubungannya dengan sinyal dan pemrosesan udev.
sumber
udevadm trigger
. Hanya ingin memastikan itu berfungsi dalam skrip. Saya akan memposting detail dalam pertanyaan jika Anda belum menambahkan lebih lanjut di sini.Coba balas skrip Anda:
Tidak diuji karena saya pada 10,04
MEMPERBARUI:
sumber
Anda dapat mencegah penginstalan flash drive dengan menambahkan aturan udev baru. Dalam aturan itu Anda dapat menentukan flash drive oleh vendornya, nomor seri, atribut lainnya. Lihat baris ATTRS {} di output dari:
Script yang harus Anda tempatkan di folder /etc/udev/rules.d dengan nama file khusus, misalnya 81-usb-wubi-move.rules
Aturannya bisa seperti
Lihat juga:
sumber
mount
dari terminal) tetapi jika saya mendapatkan solusi yang baik saya akan menerimanya juga.Belum diuji .... hanya dugaan.
Pasang sistem file di pohon yang tidak dapat diakses oleh pengguna nautilus, misalnya dalam subdirektori dari / root atau / home / someoneelse atau subdirektori / tmp yang dimiliki dan diamankan oleh orang lain
Perlu diingat itu mungkin ide yang buruk untuk memasang perangkat keras yang sama di dua titik mount dan memodifikasinya dari keduanya.
Beberapa konfigurasi manusia dimungkinkan di (12.04beta) Ubuntu-> System Settings-> Detail-> Removable Media. Beberapa opsi dapat diatur untuk "tidak melakukan apa-apa" dan itu mungkin menghindari popup.
Dokumentasi di https://help.ubuntu.com/community/Mount/USB mungkin bermanfaat untuk 9.10 tetapi tidak berfungsi dengan 12.04. Kunci untuk gconf-editor yang mereka sebutkan tidak lagi digunakan.
sumber
chmod 700
dir ... tampak menjanjikan dan kemudian muncul jendela pesan (tanpa judul jendela): "Tidak dapat membuka folder untuk 10 GB Filesystem", "Tidak ada aplikasi terdaftar yang menangani file ini"Coba
mount
dengan-n
dan-i
bendera.sumber