$ diperbaruib
Temukan driver yang berhubungan dengan scsi
$ temukan scsi*.ko
Temukan driver terkait USB
$ temukan usb*.ko
Pengemudi ini adalah
.koadalah akhiran dan dikompilasi ke dalam modul secara default saat menginstal sistem. Faktanya, mereka dapat dikompilasi sebagai bagian dari kernel, Anda hanya perlu memilih saat mengkompilasi kernel.
[*]Itu saja. Namun, dalam banyak kasus, mereka dikompilasi sebagai modul, yang mengurangi ukuran kernel dan memberikan fleksibilitas untuk memuat dan membongkarnya sesuai kebutuhan. Berikut ini secara singkat menunjukkan cara membongkar modul, memuat modul dan melihat status modul yang dimuat.
Mendingan
/procsistem file
modulfile untuk memeriksa status berbagai modul yang dimuat di kernel, atau dengan
lsmodperintah untuk melihatnya secara langsung.
$ kucing /proc/modul
atau
$lsmod
Periksa driver terkait scsi dan usb, hasilnya tercantum sebagai nama modul, ukuran modul, direferensikan oleh modul lain (jumlah referensi, modul yang mereferensikannya)
$ lsmod |.egrep scsi|usbusbhid 29536 0hid 28928 1 usbhidusbcore 138632 4 usbhid,ehci_hcd,ohci_hcdscsi_mod 147084 4 sg,sr_mod,sd_mod,libata
Copot pemasangan di bawah
usbhidLihatlah modulnya (jangan uninstall driver scsi! Karena sistem Anda mungkin berjalan di atasnya. Jika Anda benar-benar ingin memainkannya, ingatlah untuk menyimpan data sebelum menguninstall), lewati
rmmodHal ini dapat dicapai dengan menjalankan perintah, pertama beralih ke pengguna Root:
$ sudo -s# rmmod usbhid
Periksa kembali informasi modul.
$ lsmod |.grep^usbhid
Jika Anda memiliki mouse USB, pindahkan dan ternyata Anda tidak dapat memindahkannya? Karena driver perangkat sudah tidak tersedia, perangkat tidak dapat digunakan. Tapi jangan gugup. Sekarang Anda sudah tahu alasannya, Anda bisa langsung memuat ulang drivernya
insmodBundel
usbhidModul dimuat ulang.
$ sudo -s# insmod `temukan usbhid.ko`
temukan usbhid.koadalah untuk mencari tahu
usbhid.koJalur ke modul, jika sebelumnya tidak ada
diperbaruib, Saya rasa Anda tidak dapat menemukannya dengan menggunakannya, tetapi Anda juga dapat langsung mengunjunginya
/lib/modulesDigunakan dalam direktori
menemukanBundel
usbhid.koBerkas ditemukan.
# insmod $(temukan /lib/modules -name *usbhid.ko* | grep `uname -r`)
Sekarang mouse sudah bisa digunakan kembali. Jika tidak percaya, gerakkan mouse lagi :-)
Pada titik ini, hubungan antara perangkat keras dan driver perangkat seharusnya sudah relatif jelas. Jika tidak, lanjutkan ke bawah.
Driver perangkat Linux dikaitkan dengan file perangkat yang sesuai, dan file perangkat terkait dengan perangkat keras satu-ke-satu. File perangkat ini disimpan secara seragam dalam sistem
/dev/direktori.
Misalnya, perangkat scsi sesuai dengan
/dev/sda,
/dev/sda1,
/dev/sda2...Lihat informasi perangkat di bawah ini.
$ ls -l /dev/sda*brw-rw---- 1 root disk 8, 0 28-12-2007 22:49 /dev/sdabrw-rw---- 1 root disk 8, 1 2007-12- 28 22:50 /dev/sda1brw-rw---- 1 root disk 8, 3 28-12-2007 22:49 /dev/sda3brw-rw---- 1 root disk 8, 4 28-12-2007 22:49 /dev/sda4brw-rw---- 1 root disk 8, 5 28-12-2007 22: 50 /dev/sda5brw-rw---- 1 root disk 8, 6 28-12-2007 22:50 /dev/sda6brw-rw---- 1 root disk 8, 7 28-12-2007 22:50 /dev/sda7brw-rw---- 1 root disk 8, 8 28-12-2007 22: 50/dev/sda8
Anda dapat melihat bahwa karakter pertama di kolom pertama adalah
B, kolom kelima adalah angka 8.
BMenunjukkan bahwa file tersebut adalah file perangkat blok, jika memang demikian
CArtinya perangkat karakter (seperti `/dev/ttyS0). Mengenai perbedaan antara perangkat blok dan perangkat karakter, Anda dapat melihatnya di sini:
Perangkat karakter: Perangkat karakter adalah perangkat yang dapat diakses seperti aliran byte. Terminal karakter dan port serial adalah perangkat karakter.
Perangkat blok: Sistem file dapat ditampung pada perangkat blok. Berbeda dengan perangkat karakter, perangkat blok hanya dapat mentransfer satu atau lebih blok lengkap pada saat membaca atau menulis. Dalam sistem operasi Linux, aplikasi dapat membaca dan menulis perangkat blok seperti perangkat karakter (membaca atau menulis byte data sembarang dalam satu waktu). Oleh karena itu, perbedaan antara perangkat blok dan perangkat karakter hanya terletak pada pengelolaan data di kernel.
Angka 8 adalah nomor perangkat yang sesuai dengan perangkat keras di kernel
Dokumentasi/devices.txtDan
/proc/perangkatTemukan penetapan nomor perangkat dalam file. Namun mengapa perangkat yang sama berhubungan dengan file perangkat yang berbeda (
/dev/sdaMengapa ada angka yang berbeda di akhir, dan
akuKolom 6 pada hasil sesuai dengan mereka). Ini sebenarnya untuk membedakan bagian-bagian berbeda dari perangkat yang berbeda. Untuk hard drive, ini menangani partisi berbeda di dalam hard drive. Sedangkan untuk kernel hanya perlu mencari perangkat keras yang sesuai melalui nomor perangkat di kolom 5, namun untuk modul driver juga perlu mengetahui cara menangani partisi yang berbeda, sehingga ada tambahan nomor perangkat tambahan. , yaitu Isi yang sesuai dengan kolom 6. Dengan cara ini, suatu perangkat memiliki nomor perangkat utama (kolom 5) dan nomor perangkat tambahan (kolom 6), sehingga memudahkan pengelolaan berbagai perangkat keras.
Karena file perangkat sesuai dengan perangkat keras, Anda dapat langsung mengaksesnya
/dev/sda(dalam kasus
IDEhard drive, maka perangkat yang sesuai adalah
/dev/hda(la) Membaca informasi hard disk dari perangkat, misalnya:
menggunakan
hhPerintah ini menyalin 512 byte pertama dari hard disk dan memerlukan pengguna Root
$ sudo dd if=/dev/sda of=mbr.bin bs=512 hitungan=1
menggunakan
mengajukanPerintah untuk melihat informasi terkait
$ file mbr.binmbr.bin: sektor boot x86, LInux i386 boot LOader; partisi 3: ID=0x82, starthead 254, startsector 19535040, 1959930 sektor; partisi 4: ID=0x5, starthead 254, startsector 21494970, 56661255 sektor, kode offset 0x48
Bisa juga digunakan
odPerintah dibaca dalam format heksadesimal dan dianalisis.
$od -x mbr.bin
bsadalah ukuran blok (dalam byte
bytesebagai satuan),
menghitungadalah jumlah blok
Karena informasi ini tidak intuitif (dan akan dianalisis lebih lanjut di bawah), mari kita lihat file perangkat lain terlebih dahulu, yang akan dapat menunjukkan korespondensi antara file perangkat dan perangkat keras dengan sangat intuitif. Mari kita ambil mouse sebagai contoh. Mari kita membaca informasi file perangkat yang terkait dengan mouse.
$ sudo -s# kucing /dev/input/mouse1 |
Driver mouse Anda mungkin berbeda, jadi file perangkat mungkin berbeda, tetapi semuanya akan ada
/dev/masukanTurun.
Gerakkan mouse dan lihat apakah Anda menemukan keluaran informasi yang berbeda. Berdasarkan prinsip ini, kita sering membaca file perangkat di satu sisi
/dev/ttyS0konten dalam file perangkat di ujung yang lain
/dev/ttyS0Tulis konten untuk memeriksa apakah jalur port serial rusak.
Pada titik ini, Anda akan lebih terkesan dengan hubungan antara driver perangkat, file perangkat, dan perangkat keras. Jika Anda ingin memiliki pemahaman mendalam tentang prinsip kerja driver perangkat dan penulisan driver perangkat, lihat informasi relevan yang tercantum di bawah ini dan mulailah proses penulisan driver perangkat.
Referensi:
Kompilasi kernel linux 2.6
Prinsip penulisan driver perangkat keras untuk sistem Linux
Prinsip, konfigurasi, dan masalah umum perangkat USB di Linux
Panduan Pemrograman Modul Kernel Linux
Pengembangan driver perangkat Linux
Faktanya, memori, disk USB, dll. dapat digunakan sebagai perangkat "penyimpanan" yang mendasari sistem file, namun di sini kami hanya menggunakan hard disk sebagai contoh untuk memperkenalkan hubungan antara disk dan partisi.
Saat ini, partisi Linux masih mengadopsi prinsip partisi yang digunakan pada hard disk PC pertama. Prinsip partisi ini dianalisis dan ditunjukkan langkah demi langkah di bawah ini.
Mari kita lihat beberapa konsep terlebih dahulu:
Manajemen dan partisi perangkat
Di Linux, setiap perangkat penyimpanan berhubungan dengan file perangkat sistem Untuk hard disk, dll.
IDEDan
SCSIperangkat, dalam sistem
/ devKarakter yang berisi terkait dapat ditemukan di direktori
hdDan
sdfile perangkat. Tergantung pada antarmuka perangkat motherboard dan antarmuka kabel data yang terhubung dengan hard disk,
hdatau
sdSetelah karakter, Anda dapat menambahkan karakter dari
Atiba
zkarakter, misalnya
hda,
hdb,
hdcDan
sda,
sdb,
sdcdll. Selain itu, untuk membedakan partisi yang berbeda dari perangkat keras yang sama, nomor dapat ditambahkan di akhir, misalnya
hda1,
hda2,
hda3Dan
sda1,
sda2,
sda3, jadi masuk
/ devdirektori, Anda dapat melihat banyak file perangkat serupa.
Peran setiap partisi
Saat mempartisi, kita sering menemui masalah partisi primer dan partisi logis. Hal ini sebenarnya untuk memfasilitasi perluasan partisi. Sama seperti pengenalan volume logis nantinya adalah untuk mengelola beberapa hard disk dengan lebih baik, pengenalan partisi primer dan partisi logis dapat dilakukan. dapat dengan mudah dilakukan.
Setiap perangkat hard disk di sistem Linux terdiri dari hingga 4 partisi primer (termasuk partisi extended).
Partisi utama digunakan oleh komputer untuk memulai sistem operasi, sehingga program startup setiap sistem operasi, atau program boot, harus disimpan di partisi utama. Linux menetapkan bahwa partisi utama (atau partisi perluasan) menempati 4 nomor partisi pertama. Jadi, Anda akan melihat bahwa file perangkat yang sesuai dengan partisi utama adalah
/dev/hda1-4atau
/dev/sda1-4, bukannya
hda5atau
sda5.
Partisi yang diperluas digunakan untuk memperluas lebih banyak partisi logis
hda5-16atau
sda5-16Tunggu 12 angka.
Jenis partisi
Ini menentukan jenis sistem file pada partisi ini. Linux mendukung banyak jenis sistem file seperti msdoc, vfat, ext2, ext3, dll. Informasi lebih lanjut akan diperkenalkan lebih lanjut di bagian selanjutnya.
Selanjutnya, dengan menganalisis 512 byte pertama dari hard disk (mis.
MBR) untuk menganalisis dan memahami partisi.
Mari kita lihat gambar ini terlebih dahulu:
itu digunakan untuk menggambarkan
MBRstruktur.
MBRTermasuk bagian boot, tabel partisi, dan tanda akhir `(55AAH), masing-masing menempati 446 byte, 64 byte dan 2 byte 512 byte. Disini kita hanya fokus pada bagian tabel partisi yaitu bagian tengah 64 byte dan bagian kiri pada gambar.
Karena saya menggunakan
SCSIharddisk, berikut ini dari
/dev/sdaSalin 512 byte pertama hard disk ke file di perangkat
mbr.bintengah.
$ sudo -s# dd if=/dev/sda of=mbr.bin bs=512 hitungan=1
Gunakan di bawah ini
mengajukan,
od,
fdiskTunggu perintah untuk menganalisis paragraf ini
MBRdata, dan bandingkan dengan grafik di atas untuk pemahaman lebih dalam.
$ file mbr.binmbr.bin: sektor boot x86, LInux i386 boot LOader; partisi 3: ID=0x82, starthead 254, startsector 19535040, 1959930 sektor; partisi 4: ID=0x5, starthead 254, startsector 21494970, 56661255 sektor, kode mengimbangi 0x48 $ OD -X MBR.BIN | 012a 00000000720 0000 0000 0000 0000 0000 0000 0000 fe000000740 ffff fe82 ffff 14c0 012a e7fa 001d fe000000760 ffff fe05 ffff fcba 0147 9507 0360 aa55$ sudo -s# fdisk -l |. grep ^/ #Hanya menganalisis bagian terkait MBR, jangan menganalisis bagian partisi logis /dev/sda1 * 1 1216 9767488+ 83 Linux/dev/sda3 1217 1338 979965 82 Linux menukar / Solaris/dev/sda4 1339 4865 28330627+ 5 Diperpanjang
mengajukanHasil dari perintah menunjukkan bahwa 512 byte yang baru saja disalin adalah sektor boot, dan bagian yang dipisahkan dengan titik koma adalah
pemuat boot, partisi 3 dan partisi 4. Tipe partisi 3 adalah 82 yaitu
menukarPartisi (dapat dilakukan melalui
fdiskberwibawa
akuperintah untuk mencantumkan informasi yang relevan), yang sesuai dengan
fdiskdalam hasil
/dev/sda3Pada kolom ke-5 baris tersebut, jumlah sektor pada partisi 3 adalah 1959930, yang diubah menjadi byte adalah
1959930*512(Saat ini, ukuran sektor default untuk hard drive adalah 512 byte), sedangkan
menukarUkuran blok default untuk sebuah partisi adalah 1024 byte, jadi jumlah bloknya adalah
:
$ gema 1959930*512/1024 |
Tepat
fdiskHasil dalam
/dev/sda3Demikian pula, jumlah blok yang sesuai dengan kolom keempat dari baris dapat dibandingkan
fdiskDan
mengajukanHasilnya dianalisis untuk partisi 4.
Mari kita lihat lagi
odHasil dari perintah ditampilkan dalam heksadesimal. Pertimbangkan juga partisi 3. Setelah perhitungan, ditemukan bahwa partisi 3 sesuai dengan
odHasil dari perintah tersebut adalah:
fe00 ffff fe82 ffff 14c0 012a e7fa 001d
Yang pertama adalah tanda partisi,
00 jam, dari gambar di atas terlihat bahwa ini bukan partisi boot (
80 jamYang ditandai adalah partisi boot), lalu bagaimana dengan tipe partisinya? untuk
82 jam,Dan
mengajukanHasil tampilannya konsisten. Sekarang mari kita perhatikan ukuran partisinya
mengajukanJumlah sektor yang dihasilkan.
$ gema ibase=10;obase=16;1959930 |
Sesuai saja
e7fa 001d, pertimbangkan juga hasil partisi boot:
0180 0001 fe83 ffff 003f 0000 1481 012a
Tag partisi:
80 jam, yang hanya mencerminkan bahwa partisi ini adalah partisi boot, diikuti dengan situasi sektor disk tempat partisi boot berada, 010100, yaitu 1 sisi, 0 trek, dan 1 sektor. Konten lain dapat dibandingkan dan dianalisis.
Mengingat keterbatasan waktu, silakan lihat informasi di bawah atau manual sistem yang relevan untuk lebih jelasnya.
Tambahan: Saat menginstal sistem, Anda dapat menggunakan
fdisk,
cfdiskTunggu perintah untuk mempartisi. Jika Anda ingin mem-boot dari partisi tertentu, Anda perlu mengetik
80 jamtag, misalnya melalui
cfdiskSetel partisi ke
dapat di-bootuntuk mencapai.
Referensi:
Di dalam proses boot linux
Kembangkan OS Anda sendiri: booting
Pengenalan partisi disk Redhat9
Partisi Linux CARA
Sebelum diperkenalkannya volume logis, tipe partisi dan tipe sistem file diperlakukan hampir sama. Proses pengaturan tipe partisi adalah proses memformat partisi dan menetapkan tipe sistem file yang sesuai.
Berikut ini terutama memperkenalkan cara membangun hubungan antara partisi dan tipe sistem file, yaitu cara memformat partisi sesuai tipe sistem file yang ditentukan.
Pertama mari kita lihat jenis sistem file yang umum di Linux (jika Anda ingin melihat semua jenis file yang didukung oleh Linux, Anda dapat menggunakan
fdiskberwibawa
akuperintah untuk melihat, atau lulus
pria fsUntuk melihatnya, Anda juga bisa menggunakan
/proc/sistem filePeriksa jenis sistem file yang didukung oleh kernel saat ini)
ext2,
ext3,
ext4: Ketiganya adalah tipe yang umum digunakan oleh sistem file root Linux.
menukar: Ini adalah sistem file yang digunakan untuk mengimplementasikan memori virtual Linux. Selama instalasi, biasanya perlu membuat partisi khusus dan memformatnya sebagai
menukarsistem file (jika Anda ingin menambahkan lebih banyak
menukarUntuk mempartisi, Anda dapat merujuk pada bahan referensi di bagian ini untuk memahaminya
hh,
mkswap,
bertukar,
pertukaranPenggunaan perintah lain)
proses: Ini adalah sistem file yang relatif khusus yang ada sebagai antarmuka antara kernel dan pengguna dan dibangun di dalam memori (dapat diakses melalui
kucingTampilan perintah
/procFile di bawah sistem bahkan dapat dimodifikasi oleh
/proc/sistemFile di bawah ini dapat menyesuaikan konfigurasi kernel secara real time. Premis saat ini adalah Anda perlu melakukannya
prosesPada pemasangan sistem file:
mount -t proc proc /proc
Selain jenis sistem file di atas, dukungan Linux juga mencakup
vfat,
iso,
xfs,
nfsDi antara berbagai jenis sistem file yang umum, di Linux, Anda dapat dengan bebas melihat dan mengoperasikan sistem file yang digunakan oleh sistem operasi lain seperti Windows.
Jadi bagaimana Anda membangun hubungan antara disk dan tipe sistem file ini? format.
Proses pemformatan sebenarnya adalah proses menata ulang partisi, yang bisa saja
mkfsPerintah yang ingin dicapai tentu saja juga bisa Anda lewati
fdiskTunggu hingga perintah diterapkan. Disini kami hanya memperkenalkan saja
mkfs,
mkfsIni dapat digunakan untuk memformat partisi yang ada, tetapi tidak dapat melakukan operasi partisi (jika Anda ingin mempartisi dan memformat disk, Anda dapat menggunakan
fdisk). Setelah diformat, data pada partisi terkait diatur menurut jenis sistem file khusus.
Misalnya: letakkan
/dev/sda9Partisi diformat sebagai
ext3sistem file.
$ sudo -s# mkfs -t ext3 /dev/sda9
Jika Anda ingin membuat daftar tipe sistem file setiap partisi, Anda dapat menggunakan
fdisk -lMemesan.
Silakan merujuk ke materi berikut untuk informasi lebih lanjut.
Referensi:
Langkah-langkah untuk memuat partisi swap di Linux
Produksi dan pembakaran file image ISO di Linux
Penjelasan partisi disk RAM:[1],[2]
Panduan Penerapan Sistem File Tingkat Lanjut
Bagian sebelumnya secara langsung memformat partisi sebagai jenis sistem file tertentu, namun mengingat kebutuhan untuk memperluas perangkat penyimpanan baru, pengembang memperkenalkan volume logis antara sistem file dan partisi. Mengingat keterbatasan waktu, saya tidak akan membahas detailnya di sini. Silakan merujuk ke referensi: Penjelasan mendetail tentang manajemen volume logis Linux
Apa yang akhirnya dihadirkan oleh sistem file adalah struktur visual, yang dapat dipresentasikan menggunakan perintah seperti ls, find, dan tree. Ini seperti "pohon" yang terbalik, dan "pohon" baru dapat dipasang pada simpul pohon.
Berikut ini adalah pengenalan singkat untuk memasang sistem file.
Sistem file dapat dipasang melalui perangkat (
gunung) ke direktori, yang disebut titik mount. Menariknya, di Linux, direktori itu sendiri dapat dipasang ke direktori lain, dan file yang diformat juga dapat dipasang melalui perangkat khusus.
/dev/loopuntuk memasang (mis.
isodokumen). Selain itu, sejauh menyangkut sistem file, Linux tidak hanya mendukung sistem file lokal, tetapi juga mendukung sistem file jarak jauh (seperti
nfs).
Berikut ini secara singkat memperkenalkan beberapa contoh pemasangan sistem file.
Memasang sistem file root
Pemasangan memerlukan izin Root, misalnya pemasangan sistem file root sistem
/dev/sda1tiba
/ mnt
$ sudo -s# mount -t ext3 /dev/sda1 /menit/
Memeriksa
/dev/sda1Seperti yang Anda lihat dari situasi pemasangan, perangkat dapat dipasang beberapa kali.
$ mount |.grep sda1/dev/sda1 aktif / ketik ext3 (rw,errors=remount-ro)/dev/sda1 aktif /mnt ketik ext3 (rw)
Untuk sistem file yang sudah di-mount, dapat di-mount ulang untuk mendukung atribut yang berbeda.
$ gunung -n -o pasang kembali, rw /
Pasang perangkat baru
Jika kernel sudah mendukung antarmuka USB, maka saat memasukkan USB flash drive, Anda dapat meneruskannya
pesanPerintah untuk melihat nomor perangkat yang sesuai dan memasangnya.
Memeriksa
pesanUntuk beberapa baris terakhir pada hasil, temukan sesuatu seperti
/dev/sdNinformasi untuk mengetahui nomor perangkat yang sesuai dengan disk USB
$dmesg
Diasumsikan di sini bahwa disk USB adalah
vfatformat sehingga dapat juga digunakan pada Windows di beberapa toko percetakan
# mount -t vfat /dev/sdN /path/ke/mountpoint_directory
Pasang file iso atau CD
Untuk beberapa file iso atau disc berformat iso, Anda juga dapat menggunakan
gunungPerintah untuk memasang.
Untuk file iso:
# mount -t iso9660 /path/ke/isofile /path/ke/mountpoint_directory
Untuk CD:
# mount -t iso9660 /dev/cdrom /path/to/mountpoint_directory
Pasang sistem file jarak jauh
# mount -t nfs remote_ip:/path/ke/share_directory /path/ke/local_directory
Pasang sistem file proc
# mount -t proc proc /proc
prosesSistem file diatur dalam memori, tetapi dapat dipasang ke direktori. Biasanya dipasang di
/procdirektori sehingga beberapa alat manajemen dan konfigurasi sistem dapat menggunakannya. Misalnya
atasPerintah menggunakannya untuk menganalisis penggunaan memori (baca
/proc/meminfoDan
/proc/statdll. file);
lsmodperintah yang digunakan untuk mendapatkan status modul kernel (baca
/proc/modules);
status bersihperintah untuk mendapatkan status jaringan melaluinya (baca
/proc/net/devdan dokumen lainnya). Tentu saja, alat terkait juga bisa ditulis. Selain itu dengan melakukan penyesuaian
/proc/sistemFile-file dalam direktori dapat secara dinamis menyesuaikan konfigurasi sistem, seperti pergi ke
/proc/sys/net/ipv4/ip_forwardMenuliskan nomor 1 pada file memungkinkan kernel mendukung penerusan paket. (Untuk informasi lebih lanjut silakan lihat
prosesmembantu,
pria`` proses)
Pasang direktori
$ mount --bind /path/ke/needtomount_directory /path/ke/mountpoint_directory
Ini sangat menarik. Misalnya, Anda dapat memasang direktori ke direktori root layanan ftp, dan menyediakan sumber daya di direktori terkait agar orang lain dapat berbagi tanpa menyalin kontennya.
Di atas hanya disebutkan pemasangannya, lalu bagaimana cara uninstallnya? menggunakan
jumlahCukup ikuti perintah dengan alamat sumber atau titik pemasangan (perangkat, file, direktori jarak jauh, dll.) dari pemasangan. Misalnya:
$umount/jalur/ke/mountpoint_directory
atau
$umount/jalur/ke/mount_source
Jika Anda ingin mengelola layanan yang dipasang dalam jumlah besar atau sering, memasang secara manual setiap kali adalah ide yang buruk. Anda dapat menggunakannya sekarang
gunungfile konfigurasi
/etc/fstab,Bundel
gunungParameter yang sesuai ditulis sebagai
/etc/fstabPemasangan batch dapat dilakukan di kolom yang sesuai dengan file (
gunung -a) dan hapus instalan (
jumlah -a).
/etc/fstabKolomnya adalah sistem file, titik pemasangan, jenis, dan opsi terkait. Untuk informasi lebih lanjut silakan merujuk ke
fstabmembantu (
pria fstab).
Referensi:
Partisi hard disk Linux dan prinsip pemasangannya
Melihat sistem file virtual Linux dari file I/O
Analisis kode sumber: analisis statis diagram panggilan fungsi program C
Ada beberapa direktori dasar di bawah sistem file Linux, dan berbagai file dengan fungsi berbeda disimpan di direktori berbeda. Direktori paling dasar adalah
/dll,
/lib,
/ dev,
/tempat sampahdll., yang masing-masing menyimpan file konfigurasi sistem, file perpustakaan, file perangkat, dan program yang dapat dieksekusi. Direktori ini umumnya diperlukan saat melakukan pengembangan tertanam, Anda perlu melakukannya secara manual atau menggunakan
kotak sibukTunggu alat untuk membuat sistem file dasar. Disini kita hanya membuat sistem file yang sangat sederhana dan melakukan berbagai operasi konvensional pada sistem file untuk memperdalam pemahaman kita tentang sistem file.
masih ingat
hhPerintah? Gunakan saja untuk menghasilkan file berukuran tetap, ini dia
1M(1024*1024 byte)file
$ dd if=/dev/zero of=minifs bs=1024 hitungan=1024
Lihat jenis file di sini
minifadalah penuh
\0file tanpa struktur data tertentu
$ file minifsminif: data
menjelaskan:
/dev/zeroadalah perangkat yang sangat istimewa, jika Anda membacanya, Anda bisa mendapatkan berapa pun jumlahnya
\0.
File tersebut kemudian diformat menjadi sistem file dengan jenis file tertentu. (Apakah rasanya luar biasa bahwa file juga dapat diformat? Ya, tidak hanya perangkat yang bisa, file juga dapat diatur dalam jenis sistem file tertentu, namun perlu diperhatikan bahwa beberapa sistem file (seperti
ext3) mengharuskan target diformat untuk memiliki setidaknya
64Mruang angkasa).
$ mkfs.ext2 minif
Periksa jenis file saat ini, file
minifAmbil saja
ext2Format sistem file terorganisir
$ file minifsminifs: data sistem file Linux rev 1.0 ext2
Karena file tersebut disusun berdasarkan jenis sistem file, Anda dapat menggunakan
gunungperintah untuk memasang dan menggunakannya.
Silakan beralih ke
akarPengguna memasangnya dan meneruskannya
-o lingkaranopsi untuk mengaitkannya dengan perangkat tertentu
/dev/loop
$ sudo -s# pasang minif /mnt/ -o loop
Lihat informasi sistem file dan hanya melihat satu file direktori
hilang+ditemukan
$ ls /menit/hilang+ditemukan
Lakukan berbagai operasi reguler pada sistem file ini, termasuk membaca, menulis, menghapus, dll. (Tolong, sebelum setiap operasi
minifSimpan salinan file untuk perbandingan. Dikombinasikan dengan informasi yang relevan, Anda dapat melakukan analisis mendalam terhadap perubahan pada sistem file yang disebabkan oleh berbagai operasi, sehingga pemahaman mendalam tentang prinsip-prinsip implementasi sistem file sebagai suatu cara. untuk mengatur data, dll.)
$ cp minifs minifs.bak$ cd /mnt$ sentuh halo$ cd -$ cp minifs minifs-touch.bak$ od -x minifs.bak > asal.od$ od -x minifs-touch.bak > touch.od
Setelah membuat file, bandingkan persamaan dan perbedaan antara sistem file saat ini dengan sistem file sebelumnya.
$ berbeda asli 0000 0000< 0060060 0000 0000 0000 0000 0000 0000 0000 0000---> 0060020 000c 0202 2e2e 0000 000b 0000 0014 020a> 0060040 6f6c 7473 662b 756f 646e 0000 000c 0000> 0060060 03d4 0105 6568 6c6c 006f 0000 0000 0000> 0060100 0000 0000 0000 0000 0000 0000 0000 0000
Melalui perbandingan, ditemukan bahwa ketika file ditambahkan, lokasi sistem file yang sesuai telah berubah secara signifikan.
$ echo halo, dunia > /mnt/halo
melaksanakan
sinkronisasiperintah untuk memastikan bahwa data dalam cache telah ditulis ke disk (ingat Gambar 1 bagian ini
cache penyanggaNah, ini dia
cacheData dalam ditulis ke disk)
$ sinkronisasi$ cp minifs minifs-echo.bak$ od -x minifs-echo.bak > echo.od
Setelah menulis isi file, bandingkan persamaan dan perbedaan antara sistem file dengan sistem file sebelumnya.
$ diff sentuh.od echo.od
Lihat string dalam sistem file
$ string minifslost+foundhellohalo, dunia
menghapus
HaloFile, lihat perubahan sistem file
$ rm /mnt/halo$ cp minifs minifs-rm.bak$ od -x minifs-rm.bak > rm.od$ diff echo.od rm.od
Dengan melihat string dalam sistem file, kami menemukan bahwa konten file tidak ditimpa ketika file dihapus, jadi secara teoritis konten tersebut masih dapat dipulihkan saat ini.
$ string minifslost+foundhellohalo, dunia
Di atas hanya menunjukkan beberapa alat umum untuk menganalisis sistem file dan menganalisis beberapa operasi umum. Jika Anda ingin memiliki pemahaman yang lebih mendalam tentang prinsip-prinsip implementasi sistem file, harap pahami penggunaan alat di atas dan baca materi yang relevan.
Referensi:
Bangun sistem file mini di linux dari awal
Bangun sistem file mini di linux dengan BusyBox
sistem file ext2
bersama dengan
sekeringDengan munculnya sekering, pengembangan sistem file di ruang pengguna menjadi mungkin. Jika Anda ingin mengembangkan sistem file Anda sendiri, disarankan untuk membaca: Gunakan sekering untuk mengembangkan sistem file Anda sendiri.
Pada tanggal 22 Desember 2007, saya mengumpulkan banyak informasi dan menulis kerangka keseluruhannya.
Draf pertama diselesaikan pada sore hari tanggal 28 Desember 2007. Mengingat keterbatasan waktu, banyak rincian yang tidak dianalisis lebih lanjut. Selain itu, mungkin ada masalah dalam pemahaman di beberapa bagian. Kritik dan koreksi dipersilahkan.
Pada malam tanggal 28 Desember 2007, beberapa informasi diubah dan dokumen tersebut resmi diterbitkan.
No 29, tambahkan bagian tentang driver perangkat dan perangkat keras