Mengotomatiskan urutan perintah pemasangan

9

Ketika saya menghubungkan perangkat (tablet, kamera, flash drive, hard drive eksternal) ke laptop saya dengan Linux, saya sering mengetik urutan perintah berikut.

$ ls /dev/sd*
Katakanlah perangkat saya / dev / sdc
opsional $ sudo mkdir /media/my_flash
opsional$ sudo chmod 777 /media/my_flash
$ sudo mount /dev/sdc /media/my_flash

Maka saya akan menyalin beberapa file dan

$ sudo umount /dev/sdc

Urutan ini menjamin saya bahwa file disalin dan tidak ada hal buruk yang akan terjadi.

Bisakah Anda memberi tahu saya cara mengotomatiskan urutan perintah ini? Jadi saya hanya akan menyambungkan perangkat, itu akan mengenali ke direktori mana ia harus dipasang, maka saya akan melakukan beberapa transfer file dan kemudian akan memberi sinyal kepada saya (dalam beberapa cara) saya dapat mencabut perangkat? Apakah ada beberapa pengaturan di OS Linux untuk ini?

xralf
sumber

Jawaban:

6

Komponen sistem yang bereaksi terhadap koneksi perangkat yang dapat dilepas adalah Udev , sebagaimana disebutkan oleh SHW . Bahkan tutorial udev bisa sedikit menakutkan; Saya akan menunjukkan beberapa contoh.

Ada dua langkah yang terlibat: mengaitkan file perangkat (misalnya /dev/sdc) dengan perangkat perangkat keras, dan memasang perangkat untuk mengakses sistem file. Pekerjaan Udev adalah langkah pertama, meskipun Anda bisa memerintahkannya untuk menjalankan perintah eksternal seperti mount.

Untuk perangkat yang dapat dilepas yang dikenal, saya suka menggunakan nama perangkat khusus di bawah /dev/removable(nama direktori itu adalah konvensi pribadi). Aturan udev berikut (untuk ditempatkan /etc/udev/rules.d/my_removable_disks.rules) membuat tautan simbolik dengan nama yang dikenal untuk dua disk, keduanya diidentifikasi oleh properti sistem file pada partisi 1 mereka:

KERNEL=="sd?", PROGRAM=="/sbin/blkid -o value -s UUID %N1", RESULT=="1234-5678", SYMLINK+="removable/foo"
KERNEL=="sd?", PROGRAM=="/sbin/blkid -o value -s LABEL %N1", RESULT=="Joe's disk", SYMLINK+="removable/joe"

Versi udev yang lebih lama mungkin perlu /udev/lib/vol_id -u %N1(untuk UUID, -luntuk label) alih-alih blkidpanggilan. Ada lebih banyak hal yang dapat Anda cocokkan, misalnya ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="XYZZY12345PDQ97"(bukan PROGRAM==…, RESULT==…) untuk mencocokkan vendor perangkat dan nomor seri.

Maka Anda dapat menggunakan garis seperti ini di /etc/fstab:

/dev/removable/joe  /media/joe  vfat  noauto,user

Jika Anda lebih suka pemasangan otomatis, Anda dapat menambahkan sesuatu seperti , RUN="mkdir /media/foo && mount /dev/removable/foo /media/foo"ke baris udev. Jangan lupa umount /media/foosebelum mencabut kabel.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Terima kasih atas solusi hebatnya. Saya memiliki LVM pada beberapa drive eksternal, sehingga urutan pujian yang lebih lama (termasuk aktivasi VG dll), sekarang saya bahkan dapat menambahkan skrip cadangan untuk ini :).
Grzegorz Wierzowiecki
Pembaca yang budiman - jika Anda ingin tahu tentang ATTRS yang tersedia, coba ini dengan perangkat Anda:udevadm info --name=/dev/DEVICE --attribute-walk
Grzegorz Wierzowiecki
8

Anda dapat melakukan ini dengan menulis aturan UDEV, yang akan "menjalankan" skrip bash dengan mempertahankan perintah bash yang sama, yang Anda sebutkan. Setiap kali Anda mencolokkan perangkat tersebut, UDEV akan mengenali ini, dan mulai berperilaku sesuai aturan.

Untuk penulisan peraturan, Anda dapat mengikuti tautan ini .

SHW
sumber
Ooh bagus Belum tahu itu - Bookmark tautan dan menambahkannya ke daftar lagu saya.
Shadur
Bisakah Anda lebih spesifik? Paragraf mana dari tautan yang relevan bagi saya?
xralf
Sepertinya hal yang saya cari. Saya hanya tidak punya waktu untuk membacanya selama ini. Saya akan mempelajarinya dan menempelkan jawaban yang benar ke dalam komentar Anda pada saat saya akan memahaminya. Terima kasih
xralf
4

Ada beberapa daemon auto-mounting saat ini, serta pmountperintah yang secara khusus dimaksudkan untuk membiarkan pengguna memasang perangkat yang dapat dilepas /mediatanpa memerlukan sudoakses.

Baik Gnome dan KDE memiliki opsi untuk secara otomatis me-mount volume yang dapat dilepas ketika mereka terhubung; tergantung pada distribusi apa yang Anda instal, fungsi ini bahkan mungkin default ke 'on'.

Di GNOME, opsi yang mengatur fitur ini tersedia di bawah System -> Preferences -> Removable Media; Saya tidak punya pengalaman dengan KDE.

Shadur
sumber
Saya ingin melakukannya secara mandiri di Window Management Environement (seperti KDE, GNOME dll.) (Seolah X tidak dimulai).
xralf
Maka Anda harus membaca tautan yang diposkan SHW itu, dan membaca hampir semuanya.
Shadur