Sistem fail FreeBSD: hierarki dan pemasangan. MiniHowTo: Cakera pelekap FreeBSD Lekapkan mata, menggunakan cakera

Piawaian FHS pada asalnya dibangunkan untuk mengatur struktur direktori banyak pengedaran Linux. Dan hanya kemudiannya ia disesuaikan untuk sistem seperti Unix yang lain (termasuk klan BSD). Walau bagaimanapun, hierarki direktori FreeBSD yang boleh menjadi contoh untuk pematuhan teladan kepada semangat FHS. Dan secara literal penyimpangan individu di dalamnya dari hurufnya sentiasa ditentukan secara fungsional.

Piawaian FHS terletak pada dua prinsip asas: pemisahan yang jelas dalam hierarki fail direktori kongsi dan bukan kongsi, di satu pihak, dan tidak berubah dan boleh berubah, di pihak yang lain.

Perbezaan antara direktori kongsi dan bukan kongsi adalah disebabkan oleh sifat rangkaian sedia ada Unix secara umum dan FreeBSD khususnya. Iaitu, data yang berkaitan dengan mesin tempatan (contohnya, fail konfigurasi untuk perantinya) harus ditempatkan dalam direktori yang berasingan daripada yang datanya boleh diakses daripada mesin lain pada rangkaian, tempatan atau global (contohnya bukan sahaja pengguna. data, tetapi juga program) .

Intipati perbezaan antara direktori tidak berubah dan boleh berubah boleh dijelaskan dengan mudah dengan contoh. Oleh itu, program pengguna yang sama mesti, mengikut sifatnya, tidak boleh diubah (atau lebih tepat, tersedia untuk pengubahsuaian hanya kepada pentadbir sistem, tetapi bukan kepada pengguna sendiri yang menggunakannya dalam kerjanya). Pada masa yang sama, program ini, semasa operasinya, menjana bukan sahaja fail data, katakan, teks atau imej (sifat pembolehubahnya jelas tanpa ulasan), tetapi semua jenis maklumat perkhidmatan, seperti fail log, fail sementara dan suka). Yang harus dikumpulkan dalam direktori yang diasingkan daripada fail boleh laku sebenar program, perpustakaan, fail konfigurasi, dll., yang diperlukan untuk pelancarannya.

Pematuhan ketat kepada konsep mengasingkan direktori yang dikongsi dan tidak dikongsi, tidak berubah dan tidak berubah antara satu sama lain membolehkan, dalam hierarki fail seperti pokok tunggal, untuk mengasingkan cawangan individunya secara fizikal - iaitu, dalam bentuk sistem fail bebas yang terletak di peranti terpencil (cakera, kepingan cakera, sekatan; dalam kes umum dan pada jauh, media bersambung rangkaian, tetapi ini tidak akan dibincangkan sekarang). Terdapat banyak sebab untuk ini - meningkatkan kelajuan, meningkatkan kebolehpercayaan, dan hanya pertimbangan kemudahan, tetapi kami tidak akan membincangkannya sekarang. Kerana sekarang semua yang penting kepada kami ialah cawangan pokok fail ini mesti dimasukkan ke dalam sistem fail keseluruhan.

Nota sebelumnya mengatakan bahawa setiap fail (termasuk direktori) diiktiraf oleh sistem bukan dengan namanya, tetapi oleh pengecam unik kemasukannya dalam jadual inod. Terdapat alat untuk melihat ID fail ini. Satu ialah arahan ls dengan pilihan i, yang akan mencetak ID setiap fail bernama. Diberikan untuk direktori akar - $ ls -i

ia akan menunjukkan kepada kita gambar yang agak tidak dijangka (untuk kesederhanaan, maklumat tentang fail biasa dan pautan simbolik dalam akar dikecualikan daripada output, dan direktori yang tinggal diisih mengikut pengecamnya) 2 ../ 2 ./ 2 dev/ 2 home / 2 tmp/ 2 usr/ 2 var/ 3 cdrom/ 4 mnt/ 5 root/ 8257 dist/ 8258 bin/ 8294 proc/ 8295 sbin/ 16512 stand/ 24768 dll/ 24776 but/

Daripada contoh ini (berkaitan dengan sistem fail mesin di mana baris ini ditulis) adalah jelas bahawa sebanyak 7 direktori mempunyai pengecam digital yang sama, bersamaan dengan 2. Persoalannya, apakah keunikan di sini?

Dua elemen pertama senarai mudah difahami: ./ mewakili direktori semasa (dalam kes ini, akar), dan ../ direktori induk bagi direktori semasa; dan kerana, mengikut takrifan, tiada apa-apa di atas akar dalam hierarki fail, ia menandakan dirinya sendiri. Oleh itu, tidak menghairankan bahawa ./ dan ../ mempunyai pengecam yang sama - ini adalah sebutan yang berbeza (pautan keras, atau nama pendua) untuk direktori akar yang sama.

Tetapi sama, seperti yang kelihatan pada pandangan pertama, maksud pengecam untuk direktori /dev, /home, /tmp, /usr, /var memerlukan penjelasan. Walau bagaimanapun, ia adalah mudah: semua ini adalah direktori di mana sistem fail bebas dipasang, sama ada terletak pada peranti berasingan - partition cakera, seperti direktori /home, /usr, /var, atau sistem fail maya yang tidak dibina di atas mana-mana peranti cakera sebenar ( direktori /dev dengan sistem fail peranti dan, dalam kes ini, direktori /tmp, di mana sistem fail dalam RAM dipasang, yang akan dibincangkan kemudian). Dan memandangkan jadual inod berbeza untuk setiap sistem fail, tidak hairanlah punca setiap daripadanya dikenal pasti dengan nombor 2; inod di dalamnya dinomborkan dalam sistem rujukan mereka sendiri.

Jadi, pemasangan ialah kemasukan fail daripada sistem dalam mana-mana direktori yang sedia ada dalam sistem akar (tidak semestinya secara langsung dalam akar, ia boleh dalam mana-mana tahap bersarang, yang digambarkan di bawah). Tanpa ini, direktori dan fail sistem yang dipasang sedemikian tidak boleh diakses. Ini penting untuk difahami apabila anda menghadapi ungkapan seperti "buat sistem fail /usr." Daripada perkara di atas, jelas bahawa apa yang sedang dibuat (oleh arahan newfs) hanyalah sistem fail abstrak tertentu, dan ia memperoleh "nama"nya hanya pada saat memasangnya dalam direktori yang ditentukan.

Adalah menarik bahawa pengecam direktori untuk pelekapan (juga dipanggil titik pelekap) ditemui hanya pada masa pelekapan. Untuk mengesahkan ini, mari kita jalankan percubaan mudah. Dalam direktori /mnt, bertujuan khusus untuk memasang sistem fail yang dipasang sementara), anda boleh melihat tiga subdirektori /mnt/disk, mnt/iso, /mnt/usb (ini pada sistem saya, saya menciptanya untuk kemudahan saya sendiri; pada mulanya direktori /mnt berada dalam FreeBSD kosong). Apabila sistem dimulakan, tiada apa yang dipasang di dalamnya, dan keadaan normalnya adalah kosong. Jika anda melihat pengecam mereka, anda boleh melihat sesuatu seperti ini: $ ls -i1 /mnt 16:46 ttyp0 18 cakera/ 24 iso/ 19 usb/

Sekarang mari kita ambil dan pasang pemacu denyar dengan antara muka USB ke dalam /mnt/usb (inilah yang saya maksudkan untuknya) dan ulangi tontonan. Dan kita lihat: 18 cakera/ 24 iso/ 2 usb/

Iaitu, pengecam direktori yang kekal kosong (/mnt/disk dan /mnt/iso) tidak berubah, tetapi pengecam direktori /mnt/usb secara ajaib berubah menjadi 2. Kerana pada saat pemasangan ia menjadi akar untuk sistem failnya sendiri dan titik rujukan untuk mengira inod semua fail yang direkodkan padanya.

Mari kita menyimpang sedikit dan ingat tentang pautan keras, yang melaluinya inod yang sama dan blok data yang berkaitan dengannya boleh diberikan nama yang berbeza. Kini jelas mengapa semua fail pendua sedemikian harus ditempatkan dalam sistem fail yang sama: lagipun, sistem fail yang berbeza mempunyai penomboran inod mereka sendiri, tidak sepadan, dan mustahil untuk mengenal pasti mereka dengan nombor (jika tidak, bagaimana sistem membezakan direktori /usr dan /var daripada contoh kami, lagipun, dia tidak mengambil berat tentang nama fail). Untuk pautan simbolik yang mempunyai inod sendiri (sebenarnya, dan tiada apa-apa kecuali mereka) dengan pengecam mereka sendiri, bernombor dalam sistem rujukan sistem fail di mana ia berada, tiada sekatan sedemikian. Dan pautan simbolik boleh didapati di mana-mana sahaja (termasuk pada mesin jauh, bukan hanya pada partition lain).

Mari kita kembali, bagaimanapun, kepada contoh direktori akar kami. Daripada semua yang dipertimbangkan, adalah jelas bahawa beberapa cawangannya terletak pada partition berasingan dan membentuk sistem fail mereka sendiri (sebenarnya, inilah sebabnya kami mencipta kedua-duanya). Dan, oleh itu, mereka semua perlu dipasang.9. Latihan pemasangan

Tujuan pemasangan disediakan oleh arahan pelekap, dilaksanakan sama ada secara automatik semasa but sistem atau secara manual daripada baris arahan. Sebenarnya, dalam erti kata penuh, hanya sistem fail akar dipasang secara automatik dalam apa jua keadaan. Ia tidak perlu berada pada cakera; apabila bermula dari CD penyelamat atau media keselamatan lain, ia boleh terletak pada cakera maya dalam RAM. Walau bagaimanapun, proses pemasangan sistem fail akar adalah tidak dapat dielakkan seperti kemenangan sosialisme pada skala global: sama seperti sosialisme, tanpa menang pada skala global, hanya kehilangan keupayaan untuk wujud (yang baru-baru ini kita perhatikan), begitu juga dengan OS wujud tanpa sistem akar tidak boleh. Di Linux, ini menyebabkan mod panik kernel kira-kira keadaan di mana pemimpin kita jatuh 20 tahun lalu. Benar, mereka ternyata lebih kuat daripada Linux dan pulih agak cepat jadi mereka masih but semula kami (atau but semula? tetapi kami semakin kuat :)). Walau bagaimanapun, ini tidak terpakai kepada perkara pemasangan yang akan saya cuba sampaikan kepada anda sekarang.

Jadi, untuk memasang semua sistem fail kecuali yang root, anda perlu mengambil beberapa tindakan. Mula-mula kita akan melihat cara melakukannya secara manual, dan kemudian cara mengabadikannya dalam fail konfigurasi yang sesuai.

Jadi, arahan mount. Sebenarnya, ini adalah seluruh keluarga program, setiap satunya direka untuk memasang sistem fail jenis tertentu - bukan sahaja UFS, tetapi juga mana-mana yang disokong oleh FreeBSD. Senarai ini agak luas; anda boleh mendapatkan idea mengenainya dengan melihat direktori /sbin: $ ls /sbin/mount*

yang akan memberi kami tindak balas /sbin/mount /sbin/mount_msdosfs /sbin/mount_smbfs /sbin/mount_cd9660 /sbin/mount_nfs /sbin/mount_std /sbin/mount_devfs /sbin/mount_ntfs /sbin/mount_udf /sbin/mount_ext2fs /sbin/mount_nullfsbin / sbin/mount_umapfs /sbin/mount_fdescfs /sbin/mount_nwfs /sbin/mount_unionfs /sbin/mount_linprocfs /sbin/mount_portalfs /sbin/mount_mfs /sbin/mount_procfs

Setiap arahan dalam senarai ini bertanggungjawab untuk jenis sistem fail yang berbeza, beberapa daripadanya akan kami kembalikan kemudian. Buat masa ini, mari kita hanya perhatikan /sbin/mount sendiri, direka untuk berfungsi dengan UFS dan UFS2.

Dipanggil dari baris arahan, ia memerlukan dua hujah: nama peranti yang hendak dipasang dan titik pelekap (iaitu, direktori tempat sistem fail asas harus dipasang). Nama peranti harus menunjukkan patricia yang telah dipetakan pada kepingan BSD sedia ada dengan sistem fail UFS2 (UFS) yang dicipta padanya, contohnya, $ mount /dev/ads0d /usr

melekapkan sistem fail pada partition yang ditentukan dalam direktori /usr akar pokok fail. Jika sistem fail pada peranti tidak dibuat atau daripada jenis selain daripada 4.2BSD, mesej ralat akan muncul menunjukkan blok super yang salah: tidak seperti utiliti Linux dengan nama yang sama, arahan pemasangan FreeBSD itu sendiri tidak dapat mengecam sistem fail taip.

Keperluan berikut dikenakan pada titik pelekap: a) direktori dengan nama yang sama mesti wujud pada masa pelekapan, dan b) kosong seboleh mungkin. Yang pertama adalah wajib, tetapi yang kedua tidak diperlukan sepenuhnya. Pemasangan ke dalam direktori dengan mana-mana fail akan berjalan lancar (saya masih ingat bahawa di Linux tidak lama dahulu ini menyebabkan ranap sistem), tetapi semua kandungannya akan menjadi tidak boleh diakses sehingga tidak dipasang. Dan jika fail yang terkandung di dalamnya memainkan peranan penting untuk mana-mana subsistem, ini boleh menyebabkan pelbagai akibat buruk. Sebagai contoh, jika kandungan direktori /tmp disekat dengan memasang sistem fail di sana semasa sistem tetingkap X sedang berjalan, hasilnya mungkin akan menjadi ranap pelayan X. Nasib baik, jika perlu, anda boleh melakukan pemasangan gabungan (lihat di bawah).

Dalam bentuk yang ditentukan, pemasangan akan dilakukan dengan beberapa ciri lalai: sistem fail akan dibaca/ditulis dalam mod yang dipanggil. noasync (yang sama di mana operasi metadata dilakukan secara serentak, dan operasi data dilakukan secara tidak segerak). Kedudukan ini boleh diubah menggunakan pilihan -o. Terdapat sedikit daripada mereka, tetapi secara praktikalnya yang utama bagi kami pada peringkat ini ialah:

  • async akan menyediakan mod asynchronous sepenuhnya (walaupun amaran teruk dalam jawatan sebelumnya, saya kemudiannya akan bercakap tentang situasi apabila ini boleh dibenarkan);
  • menyegerakkan sebaliknya, mendayakan mod segerak sepenuhnya (walaupun saya tidak begitu faham mengapa ini secara praktikalnya diperlukan);
  • noatime pilihan yang sangat berguna yang menghalang kemas kini atribut masa capaian terakhir fail, yang sangat meningkatkan prestasi;
  • rdonly memasang sistem fail dalam mod baca sahaja (kadangkala ini perlu);
  • kesatuan pilihan yang sama yang membolehkan anda melakukan pemasangan kesatuan, di mana kandungan sebelumnya direktori titik pelekap kekal kelihatan; benar dengan beberapa sekatan lihat man (8) mount.

Terdapat beberapa nilai lain bagi pilihan -o yang melarang jenis fail tertentu daripada diletakkan pada sistem fail yang dipasang, contohnya, fail boleh laku (-o noexec), fail peranti (-o nodev), atau fail dengannya. -dipanggil. bit (-o nosuid), tetapi ia mempunyai kepentingan praktikal terutamanya untuk pentadbir pelayan dan berkhidmat untuk tujuan keselamatan. Pada mesin desktop, bentuk pelekap yang biasa adalah seperti ini: $ mount -o noatime /dev/ads0d /usr; $ mount -o noatime /dev/ads0e /var; $ mount -o noatime /dev/ads0f /home

Semua di atas hanya digunakan untuk memasang sistem fail FreeBSD. Walau bagaimanapun, dalam amalan selalunya terdapat keperluan untuk memasukkan jenis sistem fail lain ke dalam pepohon direktorinya. Ini biasanya diperlukan untuk ISO9660 (sistem fail biasa untuk semua CD kecuali yang Mac) dan pelbagai jenis FAT. Dalam kes ini, arahan pelekap yang sesuai mesti dipanggil secara eksplisit, contohnya $ mount_cd9660 /dev/acd0 /cdrom

untuk memasang padat, atau $ mount_msdosfs /dev/ad## /mnt

untuk FAT dalam sebarang jenis (termasuk FAT32). Walau bagaimanapun, ini boleh dilakukan secara tidak langsung dengan menentukan pilihan -t file_system_type kepada arahan mount. Oleh itu, arahan $ mount -t ext2fs /dev/ad## /mnt/linux

memasang sistem fail Linux (jika ciri yang sepadan disertakan dalam kernel). Dalam kes ini, lekap standard untuk partition BSD hanya digantikan dengan arahan /mount_ext2fs, direka untuk memasang partition ext2fs (dan ext3fs juga, tetapi, sudah tentu, tanpa sebarang fungsi jurnal). Iaitu, bentuk $mount -t fstype ... ...

akan menjadi setara tepat dengan perintah $mount_fstype... ...

Semua operasi untuk memasang sistem fail (termasuk pada media boleh tanggal) dalam FreeBSD memerlukan hak superuser. Nilai pilihan -o di sini, tidak seperti versi Linux bagi arahan mount, tidak termasuk parameter pengguna yang membenarkan pemasangan kepada pengguna biasa. Benar, terdapat beberapa cara untuk mengatasi masalah ini, tetapi tidak sesuai untuk membincangkannya sekarang. Menyediakan pelekap automatik

Walau bagaimanapun, dalam amalan, pemasangan manual hanya digunakan untuk sistem fail yang jarang digunakan. Semua sistem fail yang pada asasnya penting untuk berfungsi FreeBSD dipasang secara automatik pada permulaan sistem, dan yang kerap digunakan dipasang dalam mod separa automatik, boleh dikatakan, mod.

Untuk pemasangan automatik, program pelekap dijalankan semasa proses but daripada skrip permulaan. Ia mencari fail konfigurasinya /etc/fstab, dan memasang semua yang ditemui di dalamnya, dengan beberapa pengecualian (dibincangkan di bawah).

Fail /etc/fstab itu sendiri dijana secara automatik apabila FreeBSD dipasang, termasuk semua sistem fail yang diperlukan untuk menyokong kehidupan. Walau bagaimanapun, pada masa hadapan ia boleh diedit secara manual untuk menambah peranti baharu untuk pemasangan atau pilihan tambahan untuk peranti yang sudah didayakan.

Fail /etc/fstab ialah pangkalan data ringkas dalam format teks (medan dipisahkan oleh ruang atau tab), termasuk medan berikut:

  • Nama fail peranti peranti yang menempatkan sistem fail, serupa dengan hujah pertama arahan pelekap apabila digunakan secara manual;
  • Mountpoint mount point (sepadan dengan hujah kedua arahan mount);
  • Jenis sistem fail FStype, juga dinyatakan sebagai nilai pilihan -t;
  • Pilihan pilihan pelekap tambahan, serupa dengan nilai pilihan -o;
  • Syarat dump untuk melaksanakan sandaran sistem fail menggunakan utiliti dump;
  • Lulus # syarat untuk menyemak sistem fail dengan utiliti fsck.

Dalam FreeBSD /etc/fstab yang baru dipasang semestinya akan menyertakan entri berikut (contoh untuk kepingan pertama cakera Induk pada saluran IDE pertama): # Peranti Mountpoint FStype Options Dump Pass# /dev/ad0s1a / ufs rw 1 1 / dev/ad0s1b tiada swap sw 0 0

Jika anda mengikut nasihat orang yang munasabah (dan lalai pemasangan sys) dan memilih beberapa cabang sistem fail daripada akar, entri seperti /dev/ad0s1d /var ufs rw 0 0 /dev/ad0s1e / akan ditambahkan pada yang disenaraikan (apabila menandakan hirisan secara automatik melalui sysinstall) usr ufs rw 0 0 /dev/ad0s1f /tmp ufs rw 0 0

bertanggungjawab untuk sistem fail dengan direktori rumah pengguna.

Jelas sekali, dalam medan Pilihan anda boleh menambah sebarang nilai yang tersedia (dan munasabah) bagi pilihan -o (dipisahkan dengan koma, tanpa ruang), contohnya, noatime untuk semua sistem fail, dan untuk /tmp juga tidak segerak, kerana kandungan direktori ini tidak dijangka disimpan selepas but semula.

Perkara di atas digunakan untuk sistem fail yang dipasang secara automatik semasa permulaan. Walau bagaimanapun, tiada siapa yang mengganggu anda untuk membuat entri dalam /etcfstab untuk sistem yang disambungkan dari semasa ke semasa - dalam kes ini ia boleh dipasang mengikut skema yang dipermudahkan (inilah yang saya maksudkan di atas dengan mod separa automatik). Jadi, untuk pemacu CD anda boleh menambah baris (sebenarnya, ia muncul secara automatik apabila fail /etc/fstab dijana) /dev/acd0 /cdrom cd9660 ro,noauto 0 0

di mana pilihan, seperti yang anda mungkin rasa, memerlukan keengganan untuk dipasang pada permulaan (noauto) dan mod baca sahaja (ro). Selepas itu, untuk memasang CD, sudah cukup untuk menentukan titik pelekap sahaja - $ mount /cdrom

Kemasukan yang serupa boleh dibuat untuk semua pemacu boleh tanggal (Zip, pemacu USB, malah cakera liut) dan untuk partition bukan BSD (FAT atau Ext2fs). Dengan cara ini, anda boleh melekapkan sistem fail menggunakan skema yang dipermudahkan serta-merta selepas membuat perubahan pada /etc/fstab, tanpa menunggu mesin but semula.

Semua sistem fail yang terlibat mesti dinyahlekapkan sebelum mematikan kuasa atau but semula mesin. Selepas penutupan yang betul, ini dilakukan secara automatik, akibatnya setiap sistem fail boleh tulis (atau lebih tepatnya, partition yang membawanya) menerima bit unmount bersih dalam superblocknya.

Walau bagaimanapun, dalam beberapa kes (contohnya, apabila menyambung atau memutuskan sambungan mekanisme Kemas Kini Lembut atau untuk melakukan semakan integriti), ia menjadi perlu untuk menyahlekap (dan melekap semula) sistem fail secara manual, yang mana arahan umount digunakan. Ia memerlukan satu hujah: titik pelekap sistem fail untuk dialih keluar daripada pepohon direktori, contohnya: $ umount /tmp

Anda boleh menyahlekap berbilang sistem fail dengan satu baris: $ umount /usr /var /home

Atau anda boleh semua sistem fail yang dipasang atau semua sistem fail yang disenaraikan dalam fail /etc/fstab (kecuali akar), yang memerlukan pilihan $ umount -A

atau $umount -a

masing-masing. Ia juga mungkin untuk menyahlekap jenis sistem fail tertentu dengan menentukan nilai pilihan -t. Jadi, arahan $ umount -t ufs

hanya akan menyahlekap partition BSD, tanpa menjejaskan CD dan semua perkara lain yang terlibat dalam sistem.

Sistem fail tidak boleh digunakan semasa menyahlekap, iaitu, tiada akses kepada fail yang terletak padanya. Oleh itu, berada dalam mana-mana direktori sistem fail adalah alasan yang mencukupi untuk enggan menyahlekapnya (dengan mesej seperti peranti sibuk), itulah sebabnya tiada arahan yang disenaraikan di atas akan dapat menyahlekap sistem fail akar. Tetapi membaca fail data oleh mana-mana program bukanlah alasan untuk enggan menyahlekap sistem yang mengehos fail ini (lagipun, dalam kes umum, komunikasi antara fail dalam memori dan fail pada cakera hanya berlaku pada masa rakaman perubahan.

Walau bagaimanapun, anda juga boleh menyahlekap sistem fail yang anda gunakan; untuk melakukan ini, anda perlu mengeluarkan arahan umount dengan pilihan -f. Benar, ini boleh membawa kepada kesilapan, jadi lebih baik tidak menggunakannya melainkan benar-benar perlu. Dan pilihan nyahlekap secara paksa tidak akan mempunyai sebarang kesan pada sistem fail akar. Lekapan pukal

Untuk terus bekerja selepas melakukan operasi peringkat rendah pada sistem fail, mereka perlu dipasang kembali. Ini boleh dilakukan bukan sahaja tanpa but semula, tetapi juga tanpa pemasangan individu yang membosankan. Hanya gunakan pilihan -a: $ mount -a

yang melaluinya semua sistem fail yang terdapat entri dalam /etc/fstab akan dipasang. Dalam kes ini, percubaan akan dibuat untuk melekapkan yang ditandakan dengan bendera noauto. Untuk mengelakkan ini, anda boleh menentukan lagi jenis sistem fail. Iaitu, arahan $ mount -a -t ufs

hanya akan memasang partition BSD, tanpa menceroboh CD atau pemacu kilat. Atau, sebaliknya, anda boleh mengecualikan daripada proses pemasangan global beberapa sistem fail yang disenaraikan dalam /etc/fstab, sebagai contoh, FAT yang tidak diperlukan pada masa ini: $ mount -a -t nomsdosfs Mukadimah dan bukannya kesimpulan

Dengan cara ini, arahan mount tanpa pilihan dan hujah (dan dalam bentuk ini, tidak seperti semua kes yang dibincangkan di atas, ia boleh diberikan oleh pengguna biasa) akan memaparkan senarai sistem fail yang dipasang pada masa ini yang menunjukkan titik pelekap, syaratnya dan mod operasi. Sebagai contoh, untuk mesin di mana baris ini ditulis, output akan kelihatan seperti ini: /dev/ad0s1a on / (ufs, local, noatime, soft-updates) devfs on /dev (devfs, local) /dev/ccd0e on /var (ufs, local, noatime, soft-updates) /dev/ccd1e on /usr (ufs, local, noatime, soft-updates) /dev/ccd2e on /home (ufs, local, noatime, soft-updates) /dev/ md0 on /tmp (ufs, local, noatime, async)

Baris pertama output menunjukkan bahawa partition /dev/ad0s1a dipasang dalam direktori akar kami, membawa sistem fail UFS (khususnya dalam kes ini, UFS2, tetapi dalam output perintah mount mereka tidak berbeza) dengan Kemas Kini Lembut mekanisme didayakan, adalah setempat (iaitu, terletak pada cakera mesin ini; pemacu rangkaian juga dipasang dengan arahan pelekap) dan tidak tertakluk kepada pengemaskinian atribut atime.

Tetapi kemudian terdapat baris untuk peranti dan sistem fail, yang tidak dibincangkan dalam cerita sebelumnya. Selain itu, jika kita melihat fail /etc/fstab yang sepadan dengan konfigurasi semasa: $ more /etc/fstab /dev/ad0s1b none swap sw 0 0 /dev/ar0s1b none swap sw 0 0 /dev/ad0s1a / ufs rw, noatime 1 1 /dev/ccd0e /var ufs rw,noatime 2 2 /dev/ccd1e /usr ufs rw,noatime 2 2 /dev/ccd2e /home ufs rw,noatime 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 0 / dev/da0s1 /mnt/usb ext2fs rw,noauto,noatime 0 0 /dev/md0 /tmp mfs rw,noatime,async,-s32m 2 0

maka kita akan melihat bahawa salah satu baris keluaran (devfs pada /dev (devfs, local) tidak mempunyai padanan sama sekali antara entrinya. Apakah jenis peranti dan sistem fail ini?

Berkenaan peranti seperti /dev/ccd0? Saya hanya akan mengatakan buat masa ini bahawa ini adalah tatasusunan RAID perisian (kita akan membincangkannya dengan lebih terperinci kemudian). Tetapi devfs dan mfs adalah sistem fail maya, yang akan dibincangkan secara langsung dalam nota seterusnya.

Anda boleh menukar hak akses dan pemilik fail dan direktori dalam menggunakan arahan chmod Dan chown. Topeng untuk menetapkan hak kepada fail yang dicipta boleh ditukar secara global, dalam /etc/profile untuk Linux dan /etc/login.conf untuk FreeBSD. Biasanya, topeng lalai 022 . Maknanya umask ditolak daripada 777 , jadi kebenaran akan penting 755 . eksekutif - pelaksanaan dibenarkan baca - baca kebenaran tulis - tulis kebenaran SUID bit - atribut fail, bersama-sama dengan atribut fail boleh laku, membenarkan fail untuk dilaksanakan untuk dilaksanakan dengan UID berkesan pemilik fail, dan bukannya yang menjalankan fail 1 --x laksanakan # Kebenaran 764 = exec/read/write | baca/tulis | membaca 2 -w- tulis # Untuk: |-- Pemilik --| |-Kumpulan-| |Oth| 4 r-- baca ugo=a u=pengguna, g=kumpulan, o=lain-lain, a=semua orang# chmod MODE[,MODE] FAIL # MODE mempunyai bentuk: *([-+=]()) # chmod 640 /var/log/maillog # Tetapkan kebenaran kepada sama -rw-r----- # chmod u=rw,g=r,o= /var/log/maillog # Sama seperti di atas # chmod -R o-r /home/* # Tukar kebenaran secara rekursif, tidak benarkan membaca Lain-lain # chmod u+s /path/to/prog # Pasang SUID bit setiap fail boleh laku (berhati-hati di sini, anda mesti memahami apa yang anda lakukan)# cari / -perm -u+s -print # Cari semua program dengan dipasang SUID sedikit# chown user:group /path/to/file # Tetapkan pengguna dan kumpulan sebagai pemilik fail# kumpulan chgrp /path/to/file # Tukar kumpulan yang memiliki fail# chmod 640 `cari ./ -jenis f -cetak` # Tukar kebenaran kepada 640 untuk semua fail# chmod 751 `cari ./ -jenis d -cetak` # Tukar kebenaran kepada 751 untuk semua direktori

Maklumat Cakera

# diskinfo -v /dev/ad2 # Lihat maklumat cakera ( sektor/saiz) PercumaBSD# hdparm -I /dev/sda # Maklumat tentang IDE/ATA cakera (Linux)# fdisk /dev/ad2 # Tunjukkan perubahan partition cakera# smartctl -a /dev/ad2 # Tunjukkan PINTAR maklumat cakera

Memuatkan

FreeBSD

Untuk memuatkan kernel lama dalam situasi kecemasan, contohnya selepas binaan dan pemasangan baharu yang tidak berjaya, hentikan muat turun dengan menekan 6 semasa kira detik untuk sampai ke gesaan baris arahan. # unload # muat kernel.old # but

Mata lekap, penggunaan cakera

#gunung | lajur -t # Tunjukkan sistem fail yang dipasang#df # Tunjukkan jumlah ruang kosong dan peranti yang dipasang# cat /proc/partitions # Tunjukkan semua partition berdaftar (Linux)

Maklumat direktori

# du -sh * # Saiz direktori sebagai senarai# du -csh # Jumlah volum direktori semasa# du -ks * | jenis -n -r # Senarai direktori diisih mengikut saiz dalam kilobait# ls -lSr # Senarai direktori, isihan terbalik

Siapa yang membuka fail mana

Kadang-kadang adalah perlu untuk mengetahui fail mana yang telah mengunci partition, menyebabkan perintah itu umount memberikan ralat yang sepadan. # umount /home/ umount: nyahlekap /home # Tidak boleh menyahlekap partition sehingga /rumah disekat gagal: Peranti sibuk

FreeBSD dan kebanyakan sistem seperti Unix

# fstat -f /home # untuk titik lekap# fstat -p PID # untuk aplikasi dengan PID# pengguna fstat -u # untuk nama pengguna Cari fail terbuka untuk Xorg: # ps kapak | grep Xorg | awk "(cetak $1)" 1252 # fstat -p 1252 PENGGUNA CMD PID FD MOUNT INUM MODE SZ|DV R/W root Xorg 1252 root / 2 drwxr-xr-x 512 r root Xorg 1252 text /usr 216016 -rws-- x--x 1679848 r root Xorg 1252 0 /var 212042 -rw-r--r-- 56987 w Cari fail dengan inum 212042 dalam direktori /var anda boleh melakukan ini: # find -x /var -inum 212042 /var/log/Xorg.0.log

Linux

Cari fail terbuka dalam direktori menggunakan pelebur atau lsof: # pelebur -m /home # Senarai proses yang mempunyai akses kepada /rumah # lsof /perintah rumah PID pengguna fd jenis peranti saiz node node tcsh 29029 eedcoba cwd dir 0.18 12288 1048587 /home /eedcoba (guam: /home) lsof 29140 eedcoba cwd dir 0.18 12288587 /rumah) oleh PID aplikasi: ps ax | grep Xorg | awk "(cetak $1)" 3324 # lsof -p 3324 COMMAND PID PENGGUNA FD JENIS PERANTI SAIZ NAMA NOD Xorg 3324 root 0w REG 8.6 56296 12492 /var/log/Xorg.0.log Mengikut nama fail: # lsof /var /log /Xorg.0.log COMMAND PID PENGGUNA FD JENIS PERANTI SAIZ NAMA NOD Xorg 3324 punca 0w REG 8.6 56296 12492 /var/log/Xorg.0.log

Memasang/memasang semula sistem fail

Sebagai contoh cdrom, berdaftar di /etc/fstab: # mount /cdrom Atau anda boleh mencari peranti dalam /dev atau dalam output dmesg

FreeBSD

# mount -v -t cd9660 /dev/cd0c /mnt # Lekapkan cakera Cdrom(kaedah satu)# mount_cd9660 /dev/wcd0c /cdrom # Lekapkan cakera Cdrom(kaedah dua)# mount -v -t msdos /dev/fd0c /mnt # Cakera liut Tulis kepada /etc/fstab: # Peranti Mountpoint FStype Options Dump Pass# /dev/acd0 /cdrom cd9660 ro,noauto 0 0 Benarkan pengguna melekapkan cakera: # sysctl vfs.usermount=1 # Atau masukkan baris "vfs.usermount=1" dalam /etc/sysctl.conf

Linux

# mount -t auto /dev/cdrom /mnt/cdrom # Perintah pelekap cakera biasa cdrom # lekapkan /dev/hdc -t iso9660 -r /cdrom # Lekapkan cakera IDE # mount /dev/scd0 -t iso9660 -r /cdrom # Lekapkan cakera SCSI cdrom# mount /dev/sdc0 -t ntfs-3g /windows # Lekapkan cakera SCSI Mendaftar untuk /etc/fstab: /dev/cdrom /media/cdrom subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec 0 0

Memasang partition FreeBSD dengan Linux

Lihat nombor bahagian dalam fdisk, biasanya ini adalah partition root, tetapi ia boleh berada pada partition lain BSD hirisan. Jika terdapat banyak kepingan pada partition FreeBSD, ia tidak akan kelihatan melaluinya fdisk, tetapi ia boleh didapati di dev/sda* atau /dev/hda*. # fdisk /dev/sda # Cari partition FreeBSD/dev/sda3 * 5357 7905 20474842+ a5 FreeBSD # mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt /dev/sda10 = /tmp; /dev/sda11 /usr # Satu lagi kepingan

Pendawaian semula

Lekapkan semula peranti tanpa menyahlekapnya terlebih dahulu, contohnya untuk fsck# mount -o remount,ro / # Linux # mount -o ro / # FreeBSD Salin aliran data daripada CDROM"dan ke fail imej ISO. # dd if=/dev/cd0c of=file.iso

Mencipta partition swap dengan cepat

Katakan anda perlu meningkatkan partition swap, katakan kepada 2 gigabait, /swap2gb(untuk Linux) # dd if=/dev/sifar daripada=/swap2gb bs=1024k count=2000 # mkswap /swap2gb # Buat swap # swapon /swap2gb # Dayakan swap, kini ia boleh digunakan# swapoff /swap2gb # Lumpuhkan swap # rm /swap2gb

Memasang partition SMB

CIFS- Sistem Fail Internet Biasa SMB- blok mesej pelayan Katakan anda perlu mengakses perkongsian SMB bahagian myshare pada pelayan smbserver, alamat yang ditaip pada mesin Windows ialah \\smbserver\myshare\. Kami akan memasangnya /mnt/smbshare. Jangan lupa untuk cifs Alamat IP atau nama domain diperlukan.

Linux

# smbclient -U pengguna -I 192.168.16.229 -L //smbshare/ # Senaraikan syer # mount -t smbfs -o username=winuser //smbserver/myshare /mnt/smbshare # mount -t cifs -o username=winuser, password=winpwd //192.168.16.229/myshare /mnt/share Selain itu pakej mount.cifs membolehkan anda menyimpan keistimewaan dalam fail, contohnya /home/user/.smb: username=winuser password=winpwd Dan sekarang kita mount: # mount -t cifs -o credentials=/home/user/.smb //192.168.16.229/myshare /mnt/smbshare

FreeBSD

Guna kunci -saya untuk menetapkan alamat IP (atau DNS); smbserver, ini ialah nama Windows. # smbutil view -I 192.168.16.229 //winuser@smbserver # Senarai sumber yang dikongsi# mount_smbfs -I 192.168.16.229 //winuser@smbserver/myshare /mnt/smbshare

gambar gunung

Linux loop-back

# mount -t iso9660 -o fail gelung.iso /mnt # Lekapkan imej CD# mount -t ext3 -o gelung fail.img /mnt # Lekapkan imej dengan sistem fail ext3

FreeBSD

menggunakan md- peranti memori (jika perlu, buat kldload md.ko): # mdconfig -a -t vnode -f file.iso -u 0 # mount -t cd9660 /dev/md0 /mnt # umount /mnt; mdconfig -d -u 0 # Kosongkan peranti memori Atau menggunakan peranti pseudo( VN, nod maya): # vnconfig /dev/vn0c file.iso; mount -t cd9660 /dev/vn0c /mnt # umount /mnt; vnconfig -u /dev/vn0c # Kosongkan peranti pseudo

Mencipta dan Membakar Imej ISO

Kami akan menyalin CD atau DVD sektor mengikut sektor. # dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc Gunakan mksofs untuk mencipta imej daripada fail dalam direktori. Untuk mengatasi sekatan nama fail, gunakan pilihan -r, termasuk sambungan RockRidge, asas untuk sistem UNIX, -J termasuk Joliet, digunakan oleh Microsoft, -L membenarkan ISO9660 nama bermula dengan titik. # mkisofs -J -L -r -V TITLE -o imagefile.iso /path/to/dir Pada FreeBSD, mksofs boleh dipasang dari /usr/ports/sysutils/cdrtools.

Membakar imej ISO CD/DVD

FreeBSD

FreeBSD tidak dipasang DMA pada ATAPI peranti, ini boleh dilakukan melalui pembolehubah sysctl atau dalam fail /boot/loader.conf, entri berikut. hw.ata.ata_dma="1" hw.ata.atapi_dma="1" Gunakan burncd untuk peranti ATAPI ( burncd, program standard, sebahagian daripada sistem asas) dan cdrecord(daripada /usr/ports/sysutils/cdrtools) untuk peranti SCSI. # burncd -f /dev/acd0 data imagefile.iso fixate # Untuk peranti ATAPI# cdrecord -scanbus # Cari perakam # cdrecord dev=1,0,0 imagefile.iso

Linux

Gunakan dengan cara yang sama cdrecord, seperti yang diterangkan di atas. Selain itu, anda boleh menggunakan antara muka ATAPI asli: # cdrecord dev=ATAPI -scanbus Record seperti yang diterangkan di atas.

dvd+rw-tools

Pakej dvd+rw-tools (FreeBSD: ports/sysutils/dvd+rw-tools) mempunyai semua fungsi yang diperlukan untuk berfungsi dengan DVD, ditambah growisofs, untuk membakar CD atau DVD. Dokumentasi dengan contoh boleh didapati dalam buku panduan FreeBSD Bab 18.7 # -dvd-compat menutup cakera# growisofs -dvd-compat -Z /dev/dvd=imagefile.iso # Bakar imej iso sedia ada# growisofs -dvd-compat -Z /dev/dvd -J -R /p/to/data # Tulis terus

Tukar imej daripada fail Nero .nrg kepada fail .iso

Nero menambah pengepala 300kb pada imej, yang boleh dipangkas menggunakan dd. # dd bs=1k if=imagefile.nrg of=imagefile.iso langkau=300

Tukar imej bin/kiu kepada .iso

Ini boleh dilakukan menggunakan program kecil, bchunk. Pada FreeBSD ia boleh didapati dalam port /usr/ports/sysutils/bchunk. # bchunk imagefile.bin imagefile.cue imagefile.iso

Mencipta imej daripada fail

Sebagai contoh, partition 1GB menggunakan fail /usr/vdisk.img. Dalam kes ini kita menggunakan kunci -u 0, tetapi nombornya boleh jadi apa sahaja.

FreeBSD

# dd if=/dev/random of=/usr/vdisk.img bs=1K count=1M # mdconfig -a -t vnode -f /usr/vdisk.img -u 0 # Buat peranti /dev/md1 # bsdlabel -w /dev/md0 # newfs /dev/md0c # mount /dev/md0c /mnt # umount /mnt; mdconfig -d -u 0; rm /usr/vdisk.img # Jelas md Imej yang dicipta daripada fail boleh dipasang semasa but sistem dengan menulis baris ke /etc/rc.conf Dan /etc/fstab. Anda boleh menyemak sama ada tetapan anda betul menggunakan arahan /etc/rc.d/mdconfig mula(selepas mengeluarkan peranti md0 menggunakan arahan # mdconfig -d -u 0). Perlu diingat bahawa pemasangan imej automatik hanya akan berfungsi jika fail imej TIDAK dalam partition root, disebabkan oleh fakta bahawa skrip /etc/rc.d/mdconfig dilakukan pada peringkat awal but, apabila partition root belum lagi boleh ditulis. Imej yang terletak di luar partition root akan dipasang kemudian oleh skrip /etc/rc.d/mdconfig2.
/boot/loader.conf: md_load="YES" /etc/rc.conf: mdconfig_md0="-t vnode -f /usr/vdisk.img" # /usr bukan dalam partition root/etc/fstab: (0 0 pada akhir, sangat penting, ini akan menunjukkan fsck abaikan pemeriksaan peranti kerana ia belum wujud lagi) /dev/md0 /usr/vdisk ufs rw 0 0
Di samping itu, anda kemudiannya boleh meningkatkan saiz imej, katakan sebanyak 300 MB. #umount/mnt; mdconfig -d -u 0 # dd if=/dev/zero bs=1m count=300 >> /usr/vdisk.img # mdconfig -a -t vnode -f /usr/vdisk.img -u 0 # growfs /dev /md0 # mount /dev/md0c /mnt # Sekarang partition fail adalah 300 MB lebih besar

Linux

# dd if=/dev/zero of=/usr/vdisk.img bs=1024k count=1024 # mkfs.ext3 /usr/vdisk.img # mount -o loop /usr/vdisk.img /mnt # umount /mnt; rm /usr/vdisk.img # Jelas

Linux dan losetup

/dev/sifar lebih cepat daripada urandom, tetapi kurang selamat untuk penyulitan. # dd if=/dev/urandom of=/usr/vdisk.img bs=1024k count=1024 # losetup /dev/loop0 /usr/vdisk.img # Cipta /dev/loop0 # mkfs.ext3 /dev/loop0 # mount /dev/loop0 /mnt # losetup -a # Semak # umount /mnt # losetup -d /dev/loop0 # Putuskan sambungan # rm /usr/vdisk.img

Mencipta Sistem Fail Dalam Memori

Sistem fail dalam memori sangat pantas, masuk akal untuk menggunakannya untuk aplikasi dengan IO cakera tinggi. Mari buat partition bersaiz 64 MB dan pasangkannya /memdisk:

FreeBSD

# mount_mfs -o rw -s 64M md /memdisk # umount /memdisk; mdconfig -d -u 0 # Jelas md peranti md /memdisk mfs rw,-s64M 0 0 # tulis kepada /etc/fstab

Linux

# mount -t tmpfs -osize=64m tmpfs /memdisk

Prestasi cakera

Baca dan tulis 1GB fail dalam bahagian ad4s3c (/rumah) # masa dd if=/dev/ad4s3c of=/dev/null bs=1024k count=1000 # time dd if=/dev/sifar bs=1024k count=1000 of=/home/1Gb.file # hdparm -tT / dev/hda # Linux sahaja

Saya membuka satu siri manual mini "untuk mereka yang tidak tahu cara menggunakan carian dan bertanya soalan bodoh." Topik hari ini ialah memasang dan menyahlekap cakera dalam FreeBSD.

Jadi kami ingin mengakses data pada pemacu keras atau pemacu kilat tambahan. Untuk melakukan ini, kami mesti menyambungkannya (melekapkan) ke direktori kosong, selepas itu kami akan mempunyai akses kepada data pada cakera ini dalam folder yang kami buat/sebelum ini wujud. (PENTING: jangan lekapkan cakera dalam direktori yang sudah diduduki, anda akan menerima kandungan cakera anda, sebagai contoh, bukannya kandungan folder untuk fail konfigurasi, fikirkan akibatnya untuk diri sendiri;))

Pertama, buat folder kosong. Mari kita bayangkan bahawa pengguna shitus ingin menyambungkan cakera ke direktori baharu yang dipanggil pron. Untuk melakukan ini, dia mencipta folder baharu di dalam direktori rumahnya (mungkin tempat paling selamat).

Mkdir /home/shitus/pron Langkah seterusnya ialah menyambung cakera keras ke titik pelekap (kami baru mencipta folder). Anda boleh menemui semua peranti pada sistem anda dalam folder /dev/. Dalam kes saya, saya ingin menyambungkan peranti saya /dev/da2 ke folder /home/shitus/pron

Mount /dev/da2 /home/shitus/pron Sekarang anda boleh melihat kandungan cakera anda dalam direktori di atas.

Cara menyambungkan sistem fail bukan BSD yang lain

Dalam kes saya, kami mempunyai pemacu USB dengan sistem fail Fat32. Oleh itu, apabila memasang pada BSD, anda mesti menunjukkan dengan jelas jenis sistem fail yang digunakan.

Mount -t msdosfs /dev/da2s1 /home/shitus/pron/

Untuk sistem fail lain, anda boleh merujuk kepada dokumentasi FreeBSD, saya tidak akan memberikan pautan, kerana Google adalah segala-galanya.

Bagaimana untuk menyahlekap/menyahlekap sistem fail

Katakan anda mahu memutuskan sambungan/mengalih keluar peranti fail yang disambungkan. Terdapat banyak sebab untuk ini, terutamanya ini dilakukan jika anda ingin memadam cakera atau menyambungkannya semula ke titik pelekap yang lain. Perintahnya sangat mudah -

Umount /home/shitus/pron/

Pastikan anda tidak berada di dalam folder ini semasa melaksanakan arahan ini, jika tidak, hasilnya akan menjadi sifar.

Jika anda ingin memasang cakera pada permulaan sistem, maka anda mesti mendaftarkannya dalam fail /etc/fstab dengan cara yang sama seperti yang telah didaftarkan di sana. Anda juga boleh membaca lebih lanjut tentang ini dalam dokumentasi, atau suatu hari nanti saya akan menulis tentangnya untuk kali yang keseratus.

Saya sering menarik perhatian kepada fakta bahawa soalan mudah selalunya kurang mendapat liputan di Internet. Ini mungkin kerana semua guru pasti bahawa tiada siapa yang akan bertanya soalan bodoh seperti itu, kerana semua orang tahu ini. Tetapi amalan saya telah menunjukkan bahawa soalan mudah kecil ini yang paling biasa bukan sahaja di kalangan pemula, tetapi juga di kalangan pentadbir yang serius yang tidak perlu berurusan dengan ini. Malah pentadbir yang serius tidak melakukan ini setiap hari, tetapi, agar tidak lupa, mereka menyimpan beberapa jenis helaian curang untuk diri mereka sendiri, tanpa mengakuinya kepada sesiapa pun. Mari kita betulkan semuanya. Kini anda akan belajar cara menambah cakera keras ke FreeBSD dalam masa 5 minit. Jadi. Pertama, arahan lengkap akan diberikan untuk memahami proses tersebut, dan pada akhirnya akan ada senarai pendek tindakan, yang hanya akan mengandungi senarai arahan sebagai helaian cheat.

Arahan terperinci dengan penjelasan

Memilih nama cakera keras

Mula-mula kita perlu menentukan nama peranti yang baru kita tambah. Perintah berikut akan membantu kami dengan ini:

Senarai cakera geom

Atau arahan ini:

Camcontrol devlist

Dalam sistem sebenar, arahan ini akan menunjukkan lebih banyak maklumat berguna, iaitu nama peranti dan nombor siri.

Sebelum memasang peranti baharu, kami tahu bahawa sistem kami telah dipasang pada ada0, yang bermaksud, secara logiknya, pemacu baharu kami ialah ada1. Anda boleh menentukan ini dengan nama peranti baharu, nombor siri atau volumnya.

Sekarang mari kita semak sama ada terdapat tanda pada cakera baharu kita

Gpart tunjukkan ada1

Cakera tidak mempunyai sebarang tanda.

Mengalih keluar markup sedia ada

Jika cakera telah digunakan dan terdapat keperluan untuk mengalih keluar tanda daripadanya, jalankan sahaja:

Gpart musnahkan -F ada1

Mencipta penanda GPT

Pertama, kita mesti membuat partition cakera. Saya sangat mengesyorkan untuk melupakan MBR dan bertukar kepada yang baharu, lebih mudah dan berfungsi - GPT.

Kami mencipta penanda GPT pada cakera, kemudian semak perkara yang berlaku:

Gpart create -s gpt /dev/ada1 gpart show ada1

Sekarang cakera kami mempunyai penanda GPT. Daripada output, anda boleh melihat bahawa keseluruhan cakera, bermula dari LBA 34 dan berakhir dengan LBA 8388541, kosong. LBA 0−33 - dikhaskan oleh sistem untuk jadual partition.

Katakan kita perlu membuat dua partition pada cakera ini:

  • bertukar-tukar- swap partition
  • data- bahagian jenis ufs untuk menyimpan sebarang data yang kami perlukan.

Mencipta bahagian (kepingan)

Jika pemasangan dilakukan pada pemacu keras moden dengan saiz sektor 4 KB, maka penjajaran mesti digunakan semasa membuat partition. Anda boleh melakukan ini dalam dua cara: 1) jika kami menentukan parameter bahagian dalam blok, kemudian masukkan nombor blok sebagai gandaan 8, sebagai contoh: -b 40; 2) jika kami menunjukkan saiz partition dalam bait, atau tidak menunjukkan permulaan dan saiz sama sekali, gunakan parameter -4k, yang akan melaraskan permulaan dan penghujung bahagian kepada sektor bersaiz 4 kb. Memandangkan dalam contoh ini kami sedang melakukan pemasangan ujian pada cakera keras maya, kami tidak perlu melakukan ini. Walau apa pun, sebelum membuat partition, anda perlu mengetahui dengan tepat saiz sektor pemacu anda, jika tidak, ia akan mengakibatkan kelembapan kerja yang teruk.

Sekarang mari buat partition. Untuk melakukan ini, terdapat perintah tambah gpart dengan pelbagai parameter. Parameter pertama -t- menunjukkan jenis sistem fail yang dibuat. Dalam kes kami, dua jenis akan digunakan: freebsd-swap dan freebsd-ufs. Seterusnya ialah dua parameter pilihan: -b- menunjukkan nombor LBA dari mana partition perlu dibuat. Jika anda tidak menyatakan parameter ini, partition akan dibuat secara automatik daripada LBA percuma yang pertama. -s- menunjukkan saiz partition dalam LBA. Saiz satu blok LBA = 512 bait. Adalah dinasihatkan untuk menunjukkan dalam bilangan blok LBA, tetapi ia juga mungkin dalam kilo/mega/giga/… bait (akhiran k/M/G). Jika anda tidak menyatakan parameter ini, partition akan dibuat kepada LBA maksimum yang mungkin dalam kawasan kosong. Anda juga boleh menentukan label bahagian sebagai parameter, contohnya: -l tukar1- dalam kes ini, label /dev/gpt/swap1 akan dibuat, yang boleh digunakan untuk mengakses partition dengan lebih mudah. Parameter terakhir yang diperlukan ialah laluan ke cakera. Dalam kes kami: /dev/ada1.

Mari kita buat dua partition dan kemudian lihat apa yang kita ada. Kami akan mencipta partition pertama tanpa menyatakan LBA awal, tetapi menentukan saiz 1 GB (2097152 blok). Kami akan mencipta partition kedua tanpa menyatakan LBA awal dan tanpa menyatakan saiz - dengan itu ia akan dibuat pada keseluruhan ruang kosong.

Gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1 gpart show ada1

Saiz boleh ditentukan dalam bait dan bukannya blok. Ia lebih mudah. Satu-satunya negatif ialah sistem tidak boleh sentiasa mengira bilangan blok dengan betul. Mungkin terdapat kes apabila bilangan blok tertentu akan kekal kosong pada cakera apabila menentukan saiz partition dalam bait.

Mencipta sistem fail (pemformatan)

Tidak perlu memformat partition swap. Tetapi partition seperti ufs mesti diformatkan sebelum digunakan. Adalah lebih tepat untuk mengatakan: sistem fail harus dibuat pada mereka.

Untuk mencipta sistem fail pada partition kedua, jalankan arahan berikut:

Newfs -U /dev/ada1p2

Dalam kes ini, parameter -U telah digunakan - ia menunjukkan bahawa mekanisme Kemas Kini Lembut harus digunakan dalam sistem fail ini. Anda boleh meninggalkan pilihan ini untuk mengelak daripada mendayakan mekanisme ini.

Melekap

Langkah seterusnya ialah memasang partition. Mula-mula, supaya tidak lupa, mari tambah bahagian baharu kami ke /etc/fstab. Fail saya selepas mengedit kelihatan seperti ini:

Untuk memasang semula semua partition mengikut fail /etc/fstab, hanya jalankan arahan:

Gunung -a

Seperti yang anda lihat dari output, partition /dev/ada1p2 dipasang. Sekarang mari kita lihat apa yang berlaku pada bahagian SWAP. Mari jalankan arahan:

Seperti yang anda lihat, partition SWAP baharu tidak dipasang. Untuk membolehkan SWAP dipasang, anda perlu mendayakannya dengan arahan khas:

Swapon /dev/ada1p1

Dengan cara yang sama, menggunakan arahan swapoff, anda perlu melumpuhkan partition SWAP sebelum melakukan sebarang tindakan padanya.

Ini melengkapkan semua langkah untuk menambah cakera keras baharu pada sistem.

Arahan ringkas

Diberi: cakera keras /dev/ada1

Sasaran: Padamkan partition sedia ada, buat partition GPT baharu, buat dua partition: swap dan data dan sambungkannya ke sistem kerja.

Selepas setiap tindakan, lakukan pertunjukan gpart untuk memerhatikan hasilnya. Urutan:

  1. Keluarkan partition sedia ada: gpart destroy -F ada1
  2. Cipta partition baharu: gpart create -s gpt /dev/ada1
  3. Buat dua partition: swap dan data: gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1
  4. Buat sistem fail UFSv2 pada partition kedua: newfs -U /dev/ada1p2
  5. Tambahkan baris pada fail /etc/fstab untuk automount semasa but: /dev/ada1p1 none swap sw 0 0 /dev/ada1p2 /mnt ufs rw 2 2
  6. Lekapkan partition baharu (arahan memasang semua partition dari fail /etc/fstab): mount -a
  7. Dayakan partition swap baharu dengan arahan: swapon /dev/ada1p1

Ini melengkapkan persediaan.

Mereka perlu dipasang, dan apabila semua tindakan yang diperlukan selesai, mereka perlu dinyahlekapkan. Biasanya arahan mount(8) / umount(8) digunakan untuk melekap/menyahlekap, dan tiada siapa yang terfikir untuk mengautomasikan operasi ini. Pada pendapat saya, ini bukan pendekatan yang paling optimum, terutamanya memandangkan hakikat bahawa sistem pengendalian FreeBSD termasuk daemon pelekap automatik khas.

Perumusan masalah

Daemon automount sistem pengendalian FreeBSD amd(8) direka untuk melekap secara telus mana-mana sistem fail apabila fail dan folder yang terletak padanya diakses, serta menyahlekap sistem fail ini kemudiannya jika tiada aktiviti untuk tempoh tertentu masa. Artikel ini adalah mengenai mengkonfigurasi amd untuk melekapkan sistem fail secara automatik yang dieksport oleh pelayan NFS dan folder kongsi yang disediakan oleh pelayan SMB. Selain itu, ia menerangkan mendiagnosis amd menggunakan utiliti amq(8) dan memperuntukkan lognya sendiri menggunakan alat pengurusan log standard syslogd(8) dan newsyslog(8) .

Data awal

Untuk menyelesaikan masalah ini, anda tidak memerlukan sebarang perisian tambahan, tetapi anda perlu mencipta satu yang membolehkan pengguna super root untuk melekapkan folder kongsi terpilih yang disediakan oleh pelayan SMB tanpa memasukkan kata laluan.

Pemasangan automatik sistem fail NFS

Untuk memastikan pemasangan automatik sistem fail NFS, cuma tambahkan baris berikut pada fail /etc/rc.conf:

Amd_enable="YA"

dan mulakan amd dengan arahan /etc/rc.d/amd start . Secara lalai, amd akan menggunakan folder ganti /.amd_mnt, melaporkan statusnya kepada bahagian daemon syslog dan membenarkan sistem fail NFS dipasang pada folder sistem fail tempatan /host dan /net mengikut peta pelekap /etc/amd .map (peta pelekap ini disertakan dengan sistem pengendalian FreeBSD dan mengandungi peraturan yang mengawal cara sistem fail NFS boleh dipasang dan dinyahlekap menggunakan Sistem Fail Hos Rangkaian). Jika kami menterjemah apa yang telah diperkatakan ke dalam bahasa manusia, maka sejurus selepas memulakan amd anda akan dapat mengakses sistem fail kongsi yang dieksport oleh pelayan NFS nfserver sebagai folder tempatan biasa bernama /host/nfserver/share atau /net/nfserver/ kongsi. Untuk sebarang akses sedemikian dan sistem fail yang diperlukan tiada dalam senarai sistem fail yang dipasang, amd akan mencipta titik pelekap /.amd_mnt/nfserver/host/share , lekapkan sistem fail kongsi padanya, cipta folder /host/nfserver atau /net/nfserver dan tambahkannya pada pautan simbolik ke titik lekap di atas. Jika folder /host/nfserver/share atau /net/nfserver/share tidak digunakan selama 5 minit, amd akan menyahlekap sistem fail kongsi dan kemudian memadamkan folder yang tidak diperlukan lagi dan pautan simbolik.

Pemasangan automatik sistem fail SMBFS

Untuk mendayakan pemasangan automatik sistem fail SMBFS, anda perlu mencipta satu atau lebih peta pelekap tambahan, yang setiap satunya mesti mengandungi peraturan berdasarkan penggunaan Sistem Fail Program. Untuk dapat mengakses folder kongsi menggunakan nama templat seperti /smbfs/smbserver/share, anda harus memperuntukkan kad pelekap yang berasingan untuk setiap pelayan SMB. Sebagai contoh, untuk menentukan peraturan pelekap untuk folder kongsi share1 dan share2 yang disediakan oleh pelayan smbserver SMB, anda boleh mencipta peta pelekap bernama /etc/amd.map-smbserver (Anda boleh menukar nama ini mengikut citarasa anda sendiri) dan tambahkan baris berikut kepadanya:

Share1 type:=program;fs:=$(autodir)/$(path);mount:="/sbin/mount mount -t smbfs \\\/\\\/user@smbserver/share1 $(fs)"; share2 type:=program;fs:=$(autodir)/$(path);mount:="/sbin/mount mount -t smbfs \\\/\\\/user@smbserver/share2 $(fs)";

Peraturan yang ditentukan akan memaksa amd untuk melekapkan folder kongsi ke titik pelekap $(autodir) (pembolehubah $(autodir) mengandungi nama folder alternatif) dengan arahan /sbin/mount -t smbfs //user@smbserver/share ... . Ketiadaan pilihan umount atau unmount memerlukan arahan unmount lalai umount $(fs) untuk digunakan (pembolehubah $(fs) mengandungi nama titik mount).
Untuk mengaitkan peta pelekap yang dibuat dengan titik pelekap /smbfs/smbserver, anda perlu menambah baris berikut pada fail /etc/rc.conf:

Amd_flags="$amd_flags /smbfs/smbserver /etc/amd.map-smbserver"

dan mulakan semula amd dengan arahan /etc/rc.d/amd restart . Sejurus selepas melengkapkan langkah ini, anda akan dapat mengakses folder kongsi share1 dan share2 yang disediakan oleh pelayan smbserver SMB sebagai folder tempatan biasa /smbfs/smbserver/share1 dan /smbfs/smbserver/share2.

Menganalisis keadaan amd menggunakan utiliti amq

Untuk mengetahui dengan cepat keadaan amd semasa, anda boleh menggunakan perintah amq -m, yang direka untuk memaparkan senarai sistem fail yang dipasang, termasuk bilangan pautan kepada setiap satu daripadanya dan mengandungi maklumat tentang ralat pemasangan, seperti ini :

"root" root 1 localhost sudah siap /etc/amd.map /host toplvl 1 localhost sudah siap /etc/amd.map /net toplvl 1 localhost sudah siap /etc/amd.map-smbserver /smbfs/smbserver toplvl 1 localhost sedang atas nfserver:/host/nfserver /.amd_mnt/nfserver hos 1 nfserver sudah siap dipasang -t smbfs //user@smbserver/share1 ... /.amd_mnt/smbfs/smbserver/share1 program 1 localhost sudah siap

Lajur pertama jadual ini mengandungi nama peta pelekap untuk titik pelekap atau pilihan pelekap untuk sistem fail yang dipasang, yang kedua ialah nama titik pelekap, yang ketiga ialah jenis sistem fail amd, yang keempat ialah bilangan pautan kepada titik pelekap atau sistem fail, yang kelima ialah nama komputer di mana sistem fail terletak, yang keenam ialah status titik pelekap atau sistem fail, yang ketujuh ialah mesej ralat pelekap (jika tiada ralat, lajur ketujuh tidak dipaparkan). Oleh kerana amd dan rpcbind(8) ia menjalankan sokongan TCP Wrappers, menjalankan perintah amq -m boleh mengakibatkan mesej ralat yang serupa dengan yang berikut:

Amq: localhost: RPC: Port mapper failure - RPC: Authentication error amq: localhost: RPC: Authentication error; kenapa = Gagal (ralat tidak ditentukan)

Untuk menghapuskan ralat ini, anda harus menambah peraturan pada fail /etc/hosts.allow yang membenarkan akses kepada amd dan rpcbind daripada localhost:

Amd: 127.0.0.1: benarkan amd: SEMUA: tolak rpcbind: 127.0.0.1: benarkan rpcbind: SEMUA: tolak

Menyediakan amd dengan log sendiri

Pilihan permulaan lalai dalam /etc/defaults/rc.conf menyebabkan amd melaporkan statusnya kepada bahagian daemon syslog. Jika anda ingin menyediakan amd dengan log berasingan yang dipanggil /var/log/amd.log , anda perlu mengubah hala mesej ini ke bahagian syslog lain (local6 dalam kes saya), dan juga menukar konfigurasi daemon syslogd dengan sewajarnya.
Dengan mengambil kira semua perubahan dalam fail konfigurasi yang diterangkan dalam artikel ini, untuk mengubah hala mesej amd ke log /var/log/amd.log, anda mesti menukar definisi pembolehubah amd_flags dalam /etc/rc. conf ke borang ini:

Amd_flags="-a /.amd_mnt -l syslog:local6 /host /etc/amd.map /net /etc/amd.map /smbfs/smbserver1 /etc/amd.map-smbserver1"

dan mulakan semula amd dengan arahan /etc/rc.d/amd restart , dan kedua, tambahkan baris pada fail /etc/syslog.conf:

Local6.* /var/log/amd.log

buat log kosong dengan perintah sentuh /var/log/amd.log dan mulakan semula syslogd dengan arahan /etc/rc.d/syslogd restart.
Untuk mengelakkan log amd daripada berkembang, anda harus mendayakan putarannya menggunakan utiliti newsyslog. Contohnya, untuk memotong setiap hari log /var/log/amd.log sambil mengekalkan tujuh salinan sebelumnya yang dimampatkan dengan arkib bzip2(1), anda harus menambah baris berikut pada fail /etc/newsyslog.conf:

/var/log/amd.log 644 7 * @T00 JC

Kesimpulan

Selepas melengkapkan langkah yang diterangkan dalam artikel ini, anda tidak perlu risau lagi tentang memasang dan menyahlekap sistem fail NFS dan SMBFS. Saya harap anda akan mendapati peluang ini berguna dan pastikan anda memberi perhatian kepada amd.

daripada