Apakah format linux mentah?

藏色散人
藏色散人asal
2023-03-14 09:33:092052semak imbas

Linux raw ialah format data mentah, yang bermaksud "peranti kosong" dalam Linux, juga dipanggil partition naked dan raw partition linux raw ialah format data yang belum diformat dan tidak boleh dibaca oleh Unix/Linux melalui sistem fail Peranti aksara khas yang diperolehi peranti mentah boleh diikat pada partition atau cakera.

Apakah format linux mentah?

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.

Apakah format linux mentah?

Format data asal.

Penjelasan terperinci peranti mentah Linux

Gambaran keseluruhan peranti kosong

Peranti kosong: juga dipanggil partition mentah (partition mentah), ia adalah sejenis mentah partition yang belum diformatkan , peranti aksara khas yang tidak dibaca oleh Unix/Linux melalui sistem fail. Peranti mentah boleh diikat pada partition atau cakera.

Peranti aksara: Membaca dan menulis peranti aksara tidak perlu melalui penimbal OS. Ia tidak boleh dipasang oleh sistem fail.

Sekat peranti: Membaca dan menulis ke peranti blok perlu melalui penimbal OS, yang boleh dipasang pada sistem fail.

Ini berkaitan dengan versi Linux Dalam versi lama, hanya terdapat maksimum 256 peranti kosong Di bawah Linux 4, anda boleh mengikat 81Array2 peranti kosong. Walau bagaimanapun, di bawah Linux, hanya terdapat maksimum 255 partition Oleh itu, jika anda menggunakan peranti mentah untuk mengikat partition, anda hanya boleh mengikat maksimum 255 peranti mentah. Jika anda menggunakan lvm, tiada sekatan sedemikian.

Satu cakera boleh mempunyai sehingga 15 sekatan di bawah Linux. 3 sekatan utama + 1 sekatan lanjutan + 11 sekatan logik.

Kaedah pembahagian yang disyorkan ialah: mula-mula bahagikannya kepada 3 partition primer, partition keempat ialah partition extended, dan kemudian bahagikannya kepada 11 partition logic dalam partition extended.

Perhatikan bahawa peranti mentah tidak boleh diikat pada sekatan lanjutan.

Jika anda perlu menggunakan peranti kosong di bawah Linux, anda perlu mengikatnya secara manual, tetapi tidak di bawah Unix.

Oleh kerana setiap peranti blok dalam Unix mempunyai peranti aksara yang sepadan untuk I/O tidak buffer, ini adalah peranti mentah yang sepadan. Rawio dalam Linux melaksanakan satu set peranti mentah tidak terikat /dev/rawN atau /dev/raw/rawN dan peranti kawalan /dev/rawct untuk mengikatnya untuk menyekat peranti. Jadi apabila anda perlu menggunakan peranti mentah, anda perlu memadankannya dengan peranti blok sebenar Langkah ini sebenarnya melengkapkan pemetaan automatik peranti aksara bukan cache dalam Unix.

nombor peranti utama dan kecil

Dalam sistem unix/linux, semuanya adalah fail. Semua cakera keras, cakera liut, papan kekunci dan peranti lain diwakili oleh fail, sepadan dengan fail di bawah /dev. Untuk aplikasi, fail peranti ini boleh dibuka, ditutup, dibaca dan ditulis seperti fail biasa. Walau bagaimanapun, nama fail tersebut, seperti /dev/sda dan /dev/raw/raw1, adalah semua nama ruang pengguna dan OS Kernel tidak tahu apa yang dirujuk oleh nama ini. Dalam ruang kernel, peranti dibezakan dengan nombor peranti utama dan kecil.

nombor peranti utama boleh dianggap sebagai pemacu peranti Peranti yang diuruskan oleh pemacu peranti yang sama mempunyai nombor peranti utama yang sama adalah indeks jadual pemacu peranti dalam Kernel, yang menyimpan peranti yang berbeza. pemandu. Nombor peranti kecil digunakan untuk mewakili peranti tertentu yang sedang diakses. Maksudnya, Kernel mencari pemacu peranti berdasarkan nombor peranti utama, dan kemudian memperoleh lokasi peranti dan atribut lain daripada nombor peranti kecil. Semua nombor peranti utama ini telah diperuntukkan terlebih dahulu. Butiran boleh dilihat di http://www.lanana.org/docs/device-list/devices-2.6+.txt.

Sebagai contoh, peranti mentah ialah 162, dan peranti blok scsi ialah 8

/etc/udev/rules.d/60-raw.rules

Konfigurasi peranti mentah pada platform Redhat telah berubah selepas redhat 5. Sebelum redhat 5, fail /etc/sysconfig/rawdevices telah dikonfigurasikan secara langsung dan permulaan dan penutupan peranti mentah diuruskan melalui /etc/init.d/rawdevices. Selepas Redhat 5, antara muka peranti mentah asal telah dibatalkan, dan redhat 5 dikonfigurasikan melalui peraturan udev. Untuk mengkonfigurasi, anda perlu mengedit fail /etc/udev/rules.d/60-raw.rules.

cat /etc/udev/rules.d/60-raw.rules
# Enter raw device bindings here.
#
# An example would be:
#   ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
# to bind /dev/raw/raw1 to /dev/sda, or
#   ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"
# to bind /dev/raw/raw2 to the device with major 8, minor 1.

Antaranya,

ACTION=="add", KERNEL="<device name>", RUN+="raw /dev/raw/rawX %N"

konfigurasikan nama peranti, gantikan 46f22ea68120cc95febeb51f0c48d728 dengan nama peranti yang anda perlu ikat (seperti: /dev/sda1), X ialah Nombor peranti mentah.

Nombor utama/kecil:

ACTION=="add", ENV{MAJOR}="A", ENV{MINOR}="B", RUN+="raw /dev/raw/rawX %M %m"

"A" dan "B" ialah nombor utama/kecil peranti dan X ialah peranti mentah nombor yang digunakan oleh sistem.

Pemahaman peribadi saya tentang proses mengurus mentah dalam redhat ialah: dalam redhat 5, peranti mentah diurus melalui udev, dan udev mengenal pasti peranti mentah melalui MAJOR dan MINOR. Oleh itu, nombor peranti dan nombor peranti mentah perlu diikat, dan nombor peranti utama dan nombor peranti kecil boleh ditentukan oleh anda sendiri atau diberikan secara automatik oleh sistem. Mengikut contoh raw.rule dalam dokumentasi rasmi red hat, dikatakan bahawa KERNEL==.. atau ENV{MAJOR}... hanya perlu dikonfigurasikan sewenang-wenangnya Namun, beberapa netizen telah menguji dan mengesahkan bahawa kedua-duanya mesti dikonfigurasikan pada masa yang sama.

Konfigurasikan fail /etc/udev/rules.d/60-raw.rules

Semak status partition cakera

# fdisk  -l /dev/sdb
Disk /dev/sdb: 4880 MB, 4880072704 bytes
255 heads, 63 sectors/track, 593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          25      200781   83  Linux
/dev/sdb2              26          50      200812+  83  Linux

Konfigurasikan /etc/udev/rules .d /60-raw.rules file

# grep -v ^# /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", ENV{MAJOR}=="3", ENV{MINOR}=="2", RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add", ENV{MAJOR}=="7", ENV{MINOR}=="2", RUN+="/bin/raw /dev/raw/raw2 %M %m"

Mulakan peranti mentah

# start_udev
Starting udev:                                             [  OK  ]

Lihat konfigurasi

# raw -qa
/dev/raw/raw1:  bound to major 8, minor 17
/dev/raw/raw2:  bound to major 8, minor 18

Saya tidak tahu mengapa nombor peranti utama dan nombor peranti kompleks adalah Nombor peranti tidak sama dengan apa yang saya nyatakan dalam /etc/udev/rules.d/60-raw.rules maklumat adalah seperti berikut

# uname  -a
Linux rac1 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)

Anda boleh menentukan induk dengan cara berikut Nombor peranti dan nombor peranti kompleks

# raw /dev/raw/raw1 1 1
/dev/raw/raw1:  bound to major 1, minor 1
raw /dev/raw/raw[n] /dev/xxx

其中n的范围是0-8191。raw目录不存在的话会被自动创建。执行这个命令,就会在/dev/raw下生成一个对应的raw[n]文件用命令方式绑定裸设备在系统重启后会失效。

删除裸设备

# raw /dev/raw/raw2 0 0
/dev/raw/raw2:  bound to major 0, minor 0
# raw -qa
/dev/raw/raw1:  bound to major 1, minor 1

以上设置必须同时修改/etc/udev/rules.d/60-raw.rules才能保证重启后生效,否则重启后系统会重新读取/etc/udev/rules.d/60-raw.rules

如需设置raw设备的用户和权限信息,可在/etc/udev/rules.d/60-raw.rules文件里添加如下信息:

ACTION=="add", KERNEL=="raw1", OWNER="dave", GROUP="tianlesoftware", MODE="660"

如果有多个raw设备,可以写成:

ACTION=="add", KERNEL=="raw[1-4]", OWNER="dave", GROUP="tianlesoftware", MODE="660"
#chown oracle:oinstall /dev/raw/raw[1-4]
#chmod 775 /dev/raw/raw[1-4]

注意:在内核2.6.9-89.5AXS2之前使用/etc/sysconfig/rawdevices和/etc/udev/permissions.d/50-udev.permissions进行raw设备的配置和权限管理。在内核 2.6.18-128.7AXS3以后则使用了本文介绍的/etc/udev/rules.d/60-raw.rules进行raw设备的管理

确定裸设备的大小

比较笨的办法是,找出看裸设备对应的是那个实际的块设备,然后用fdisk -l /dev/[h,s]dXN看那个块设备的大小就好了。比较简单的办法是用blockdev命令来计算,如:

#blockdev --getsize /dev/raw/raw1

11718750

11718750表示有多少OS BLIOCK。

一般一个OS BLOCK大小是512字节,所以11718750*512/1024/1024= 5722(m) 就是裸设备的大小。

使用裸设备作为oracle的数据文件的注意事项

1、一个裸设备只能放置一个数据文件

2、数据文件的大小不能超过裸设备的大小

如果是日志文件,则裸设备最大可用大小=裸设备对应分区大小 - 1 * 512 (保留一个redo lock)

如果是数据文件,则裸设备最大可用大小=裸设备对应分区大小 - 2 * db_block_size(保留两个block)

为了简单起见,对所有的文件设置称比裸设备小1M即可。

3、数据文件最好不要设置称自动扩展,如果设置称自动扩展,一定要把maxsize设置设置为比裸设备小

4、linux下oracle不能直接把逻辑卷作为裸设备,也要进行绑定。unix下就不需要。

相关推荐:《Linux视频教程

Atas ialah kandungan terperinci Apakah format linux mentah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn