1. 程式人生 > >Linux中的裝置檔案與裝置號

Linux中的裝置檔案與裝置號

在Linux下,一切皆檔案,裝置也不例外,為了管理這些裝置,系統為它們各自都編了號,而每個裝置號又分為主裝置號和次裝置號。主裝置號用來區分不同型別的裝置,而次裝置號用來區分同一型別內的多個裝置(及其裝置分割槽)。
一個Linux系統,當前所有註冊裝置的主裝置號可以通過/proc介面檢視:

[[email protected] lenky]# cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
14 sound
21 sg
29 fb
99 ppdev
116 alsa
128 ptm
136 pts
162 raw
180 usb
189 usb_device
202 cpu/msr
203 cpu/cpuid
251 hidraw
252 usbmon
253 bsg
254 rtc

Block devices:
1 ramdisk
2 fd
259 blkext
7 loop
8 sd
9 md
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 device-mapper
254 mdp
[[email protected] lenky]#
字元裝置與塊裝置的主裝置號並不衝突,所有兩個都可以有主裝置號為1的裝置,如果要繼續檢視次裝置號,那麼可以通過直接ls -l來檢視,比如檢視主裝置號為8的裝置的次裝置號:

[[email protected] lenky]# ls -Rl /dev/* | grep ” 8,”
brw-rw—-. 1 root disk 8, 0 Jan 12 06:24 /dev/sda
brw-rw—-. 1 root disk 8, 1 Jan 12 06:24 /dev/sda1
brw-rw—-. 1 root disk 8, 2 Jan 12 06:24 /dev/sda2
brw-rw—-. 1 root disk 8, 16 Jan 12 06:25 /dev/sdb
brw-rw—-. 1 root disk 8, 17 Jan 12 06:25 /dev/sdb1
brw-rw—-. 1 root disk 8, 32 Jan 12 06:29 /dev/sdc
brw-rw—-. 1 root disk 8, 33 Jan 12 06:29 /dev/sdc1
brw-rw—-. 1 root disk 8, 34 Jan 12 06:29 /dev/sdc2
brw-rw—-. 1 root disk 8, 35 Jan 12 06:29 /dev/sdc3
[

[email protected] lenky]#
上面的0,1,2,16,17等都是次裝置號,用於區分標記各個sd硬碟或分割槽。檢視系統所有的塊裝置:

[[email protected] lenky]# grep ^ /sys/class/block/*/dev
/sys/class/block/dm-0/dev:253:0
/sys/class/block/dm-1/dev:253:1
/sys/class/block/dm-2/dev:253:2
/sys/class/block/fd0/dev:2:0
/sys/class/block/loop0/dev:7:0
/sys/class/block/loop1/dev:7:1
/sys/class/block/loop2/dev:7:2
/sys/class/block/loop3/dev:7:3
/sys/class/block/loop4/dev:7:4
/sys/class/block/loop5/dev:7:5
/sys/class/block/loop6/dev:7:6
/sys/class/block/loop7/dev:7:7
/sys/class/block/ram0/dev:1:0
/sys/class/block/ram10/dev:1:10
/sys/class/block/ram11/dev:1:11
/sys/class/block/ram12/dev:1:12
/sys/class/block/ram13/dev:1:13
/sys/class/block/ram14/dev:1:14
/sys/class/block/ram15/dev:1:15
/sys/class/block/ram1/dev:1:1
/sys/class/block/ram2/dev:1:2
/sys/class/block/ram3/dev:1:3
/sys/class/block/ram4/dev:1:4
/sys/class/block/ram5/dev:1:5
/sys/class/block/ram6/dev:1:6
/sys/class/block/ram7/dev:1:7
/sys/class/block/ram8/dev:1:8
/sys/class/block/ram9/dev:1:9
/sys/class/block/sda1/dev:8:1
/sys/class/block/sda2/dev:8:2
/sys/class/block/sda/dev:8:0
/sys/class/block/sdb1/dev:8:17
/sys/class/block/sdb/dev:8:16
/sys/class/block/sdc1/dev:8:33
/sys/class/block/sdc2/dev:8:34
/sys/class/block/sdc3/dev:8:35
/sys/class/block/sdc/dev:8:32
/sys/class/block/sr0/dev:11:0
[[email protected] lenky]#
關於每個主裝置號:次裝置號對應裝置的功能在Linux幫助文件裡可以找到:http://lxr.linux.no/#linux+v2.6.38.8/Documentation/devices.txt

在核心2.6.9之後,Linux系統上出現了一種名為device-mapper的儲存對映機制,這種機制的作用簡單來說就是給使用者提供簡單方便而又豐富的儲存管理介面,在這種機制以及相關工具的幫助下,使用者能夠方便的自定義儲存資源管理策略。

通過一些對映規則,device-mapper機制能夠從原有的物理磁碟或邏輯磁碟中劃分映射出新的邏輯磁碟,可以看到這是一個遞迴的對映機制,理論上可無限迭代。舉個例子,系統有物理磁碟A和B,從物理磁碟A中映射出新的邏輯磁碟C、D、E,從物理磁碟B中映射出新的邏輯磁碟F、G,又可以從物理磁碟A和邏輯磁碟F中映射出新的邏輯磁碟H,等等。關於這方面,請參考:http://www.ibm.com/developerworks/cn/linux/l-devmapper/http://sources.redhat.com/dm/等資源,不管是原物理磁碟還是通過device-mappe機制映射出來的新邏輯磁碟,在Linux作業系統看來都一樣,一切皆檔案,複雜邏輯被隔離在底部。

我係統使用的dm磁碟如下:

[[email protected] lenky]# ls -l /dev/dm-*
brw-rw—-. 1 root disk 253, 0 Jan 12 06:24 /dev/dm-0
brw-rw—-. 1 root disk 253, 1 Jan 12 06:24 /dev/dm-1
brw-rw—-. 1 root disk 253, 2 Jan 12 06:24 /dev/dm-2
[[email protected] lenky]# ls -l /dev/mapper/*
crw-rw—-. 1 root root 10, 236 Jan 12 06:24 /dev/mapper/control
lrwxrwxrwx. 1 root root 7 Jan 12 06:24 /dev/mapper/VolGroup-lv_home -> ../dm-2
lrwxrwxrwx. 1 root root 7 Jan 12 06:24 /dev/mapper/VolGroup-lv_root -> ../dm-0
lrwxrwxrwx. 1 root root 7 Jan 12 06:24 /dev/mapper/VolGroup-lv_swap -> ../dm-1
[[email protected] lenky]#
轉載請保留地址:http://www.lenky.info/archives/2012/02/1141http://lenky.info/?p=1141

附加筆記:

[[email protected] lenky]# ls -Rl /dev/* | grep ” 8,”
brw-rw—-. 1 root disk 8, 0 Jan 12 06:24 /dev/sda
brw-rw—-. 1 root disk 8, 1 Jan 12 06:24 /dev/sda1
brw-rw—-. 1 root disk 8, 2 Jan 12 06:24 /dev/sda2
一般說的各個分割槽相加等於硬碟,有個隱含說明就是硬碟內各個分割槽的硬碟儲存空間容量相加等於硬碟的硬碟儲存空間容量。
一個硬碟有一個描述硬碟的資訊,而一個分割槽有一描述分割槽的資訊,將硬碟內各個分割槽的描述分割槽的資訊拼接在一起也得不到關於硬碟的資訊,所以給硬碟配上一個次裝置號是有必要不多餘的。

[[email protected] lenky]# ls -Rl /dev/* | grep ” 8,”
brw-rw—-. 1 root disk 8, 0 Jan 12 06:24 /dev/sda
brw-rw—-. 1 root disk 8, 1 Jan 12 06:24 /dev/sda1
brw-rw—-. 1 root disk 8, 2 Jan 12 06:24 /dev/sda2
brw-rw—-. 1 root disk 8, 16 Jan 12 06:25 /dev/sdb
brw-rw—-. 1 root disk 8, 17 Jan 12 06:25 /dev/sdb1
brw-rw—-. 1 root disk 8, 32 Jan 12 06:29 /dev/sdc
brw-rw—-. 1 root disk 8, 33 Jan 12 06:29 /dev/sdc1
brw-rw—-. 1 root disk 8, 34 Jan 12 06:29 /dev/sdc2
brw-rw—-. 1 root disk 8, 35 Jan 12 06:29 /dev/sdc3
我們看到/dev/sd*裝置名的裝置型別(即指的是IDE硬碟),這裡有三個不同的IDE硬碟,其主裝置號以及其分割槽的主裝置號都是8。

相關推薦

Linux裝置檔案裝置

在Linux下,一切皆檔案,裝置也不例外,為了管理這些裝置,系統為它們各自都編了號,而每個裝置號又分為主裝置號和次裝置號。主裝置號用來區分不同型別的裝置,而次裝置號用來區分同一型別內的多個裝置(及其裝置分割槽)。 一個Linux系統,當前所有註冊裝置的主裝置號

Linux檔案目錄管理

在Linux中,一切皆檔案 1.0Linux中的檔案型別 1.普通檔案(regular fille)第一個字元為[ - ] 包括: ①純文字文件(ASCII):這是Linux系統中最多的一種檔案型

linux 如何得到裝置檔案裝置(主裝置&次裝置

使用stat (/usr/include/sys/stat.h)系統呼叫,介面如下: stat (__const char *__path, struct stat *__statbuf)得到的資訊在stat結構體中: struct stat { __dev

linuxc表示字元裝置檔案符號

linux中c表示字元裝置檔案,b表示塊裝置檔案,l表示符號連結檔案,r表示可讀許可權,w表示可寫許可權。linux檔案屬性解讀:檔案型別:-:普通檔案 (f)d:目錄檔案b:塊裝置檔案 (block)

Linux建立迴環裝置(loopback device)的方法

你有沒有想過在Linux的檔案管理系統中再建立一個檔案系統,就像在Windows中建立一個新的磁碟分割槽那樣(但其實並不必非得直接那麼做)。這時你就需要用到迴環裝置(loop device)。在Linux中,迴環裝置允許使用者以一個普通磁碟檔案虛擬一個塊裝置。設想一個磁碟裝置

每天進步一點點——Linux檔案描述符開啟檔案之間的關係

    在Linux系統中一切皆可以看成是檔案,檔案又可分為:普通檔案、目錄檔案、連結檔案和裝置檔案。檔案描述符(file descriptor)是核心為了高效管理已被開啟的檔案所建立的索引,其是一個非負整數(通常是小整數),用於指代被開啟的檔案,所有執行I/O操作的系統呼叫都通過檔案描述符。程式剛剛啟動的

Linux檔案描述符(fd)開啟檔案之間的關係

1. 概述     在Linux系統中一切皆可以看成是檔案,檔案又可分為:普通檔案、目錄檔案、連結檔案和裝置檔案。檔案描述符(file descriptor)是核心為了高效管理已被開啟的檔案所建立的索引,其是一個非負整數(通常是小整數),用於指代被開啟的檔案,所有執行I/O操作的系統呼叫都通過檔案描

linux/etc/profile /etc/environment檔案的區別

       如果同一個變數在使用者環境(/etc/profile)和系統環境(/etc/environment)有不同的值那應該是以使用者環境為準了。 (1)/etc/profile: 此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行. 並從/etc/profile.d目錄的配置檔案中

linux使用者建立刪除以及檔案許可權檢視和修改

一、 1.檢視使用者 命令如下:whoami 關於who的其他命令大全 2.建立使用者   建立使用者命令:sudoadduser hello   超級使用者是 root   刪除使用者名稱命令:sudodeluser hello --remove-home   切換使用

Linux進程線程及CPU使用率查詢

mage images logs alt 技術 cat png rgs img 一、進程查詢:   ps -e -o ‘pid,comm,args,pcpu,rsz,vsz,stime,user,uid‘   說明:PCPU是Cpu使用率,8核最多是800。   

LinuxNginx安裝配置詳解

cpan .net 語言 roo disable 方便 sbin wget 一個 安裝所需環境 Nginx 是 C語言 開發,建議在 Linux 上運行,當然,也可以安裝 Windows 版本,本篇則使用 CentOS 7 作為安裝環境。 上網配置: 如果安裝了cen

Linux歸檔檔案並在系統間傳輸檔案

檔案歸檔tar tar命令能夠列出存檔內容,或者將其檔案提取到當前系統。通過tar,使用者可以將大型檔案集彙集為一個檔案(存檔),該存檔可用gzip,bzip2,xz壓縮方式壓縮 使用歸檔檔案和目錄tar 在建立tar存檔之前,先驗證目錄中沒有其他存檔與要建立的新存檔名稱相同,tar命令

linux檔案鎖(勸告性上鎖和強制性上鎖)

上午在看UNP卷二這一節的時候及其想睡覺,就草草了事,夜晚沒有事情幹,就來找找部落格看看這兩個鎖到底是怎麼回事吧! 參考文章:https://www.ibm.com/developerworks/cn/linux/l-cn-filelock/index.html 背景知識:在早期的

Linux檔案許可權

1.檔案許可權存在的意義    系統最底層安全設定方法之一    保證檔案可以被可用的使用者做相應操作 2.檔案許可權的檢視     ls  -l  file ls  -ld  dir ll  file   ll   -d   dir 3.檔案許可權的讀取 - |rw-rw-r--

linuxsupportconfig安裝使用方法

由於工作原因,平時需要suse的工程師做二線技術支援,除了經常會提交kdump分析的結果給suse 工程師定位根因,而在沒有kdump生成時,經常會用的指令就是supportconfig收集系統資訊,其收集內容基本涵蓋了核心、模組、系統、服務等幾乎所有我們能想到的資訊,另外還會出一份簡單的health che

ethereumjs/ethereumjs-wallet gethUTC檔案私鑰的關係

Utilities for handling Ethereum keys ethereumjs-wallet A lightweight wallet implementation. At the moment it supports key creation and conversion between

matlab文字檔案影象轉化

  一  將圖片轉化為txt文字檔案 a=imread('picture.bmp');   //讀取picture.bmp圖片 b=rgb2gray(a);        &

linuxoffice檔案預覽方案

在Linux上提供office檔案預覽功能時,若不採用商業庫,較為可行的方案為:利用開源軟體轉換檔案的格式;利用新格式的檔案的瀏覽器開啟檔案。 能夠轉換成的檔案格式包括:PDF、HTML和PS。 支援轉換office檔案的軟體包括:libreoffice、openoffice和WPS企業版。

Linux軟連結硬連結

說明一下軟連結與硬連結建立的語法 ln -s test test.soft ln test test.hard 硬連結與軟連結的特點 硬連結是對原始檔的操作就相當於cp -p+同步更新 硬連結在實際開發環境使用較少,要注意的是雖說

NIO.2檔案資源支援

隨著JDK 7 的釋出,Java對NIO進行了極大的擴充套件,增強了對檔案處理和檔案系統特性的支援,以至於我們稱他們為NIO.2。因為NIO 提供的一些功能,NIO已經成為檔案處理中越來越重要的部分。 【1】Path 與Paths java.nio.file.P