歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> Linux下幾個特別有用的設備文件

Linux下幾個特別有用的設備文件

日期:2017/3/2 16:42:31   编辑:Linux服務器

正如大家所知道的那樣,linux下的設備很特別,系統總是以總一的方式讀取設備,而設備間的差別由設備驅動程序來負責完成。正因為如此,設備管理起來非常地容易。linux也提供了虛設備文件,即無實際物理硬件相對應的設備,它們在實際的工作學習中會經常用到,現介紹如下

(一)-首先說的當然是回環設備,loop device,這是什麼呢?就是把文件模擬成設備,然後就可以像實際設備那樣進行相關的操作啦,是大家所熟悉的就是掛載光盤鏡象啦,比如說掛載CentOS-5.2-i386-bin-DVD.iso 這個,那麼在SHELL中輸入 並用ls看其內容

[root@xx ~]# mount -o loop /mnt/iso/CentOS-5.2-i386-bin-DVD/CentOS-5.2-i386-bin-DVD.iso /media

[root@xx ~]# ls /media -l


總計 462

drwxr-xr-x 2 root root 397312 06-19 23:23 CentOS
-rw-r–r– 7 root root 212 06-15 06:32 EULA
-rw-r–r– 7 root root 18009 06-15 06:32 GPL
drwxr-xr-x 4 root root 2048 06-19 23:22 images
drwxr-xr-x 2 root root 2048 06-19 23:05 isolinux (以下省略)

那麼一個系統中有多少個loop device呢,我們有來看一看

[root@xx ~]# ls /dev |grep ^loop
loop0
loop1
loop2
loop3
loop4
loop5
loop6
loop7


一般一個系統中就有這麼多,當然你也可以自行增加哈, 在看看剛剛掛的個鏡象用的是哪個loop device

[root@xx ~]# losetup -a


/dev/loop0: [0805]:1245190 (/mnt/iso/CentOS-5.2-i386-bin-DVD/CentOS-5.2-i386-bin-DVD.iso)

(二),/dev/zero,這個設備是做什麼的,,每次對它讀一次它就對外輸出一個字節,現在來做一個10M的數據文件,然後有file命令來查看

[root@xx ~]# dd if=/dev/zero of=hd.img bs=1k count=10000
10000+0 records in
10000+0 records out
10240000 bytes (10 MB) copied, 0.0853896 seconds, 120 MB/s
[root@xx ~]# file hd.img
hd.img: data


由file命令hd.img的是數據文件,現在用loop device把它掛成一虛擬的硬盤

losetup /dev/loop1 hd.img


[root@xx ~]# losetup -a
/dev/loop0: [0805]:1245190 (/mnt/iso/CentOS-5.2-i386-bin-DVD/CentOS-5.2-i386-bin-DVD.iso)
/dev/loop1: [fd00]:2586037 (hd.img)


可知,hd.img 對應著loop1,而 CentOS-5.2-i386-bin-DVD/CentOS-5.2-i386-bin-DVD.iso對應著loop0,
現在我們就可以通過/dev/loop1 來操作hd.img啦,,它就象一個真實的設備一樣,可以進行分區,創建文件系統等

[root@xx ~]# fdisk /dev/loop1
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won’t be recoverable.
Warning: invalid flag 0×0000 of partition table 4 will be corrected by w(rite)
Command (m for help):


用fdisk進行分區,然後創建文件系統,並用file查看hd.img的屬性

[root@xx ~]# mkfs -t ext2 /dev/loop1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2512 inodes, 10000 blocks
500 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=10485760
2 block groups
8192 blocks per group, 8192 fragments per group
1256 inodes per group
Superblock backups stored on blocks:
8193
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@xx ~]# file hd.img
hd.img: Linux rev 1.0 ext2 filesystem data

你可借助loop device來學習LVM,RAID,借用loop device來創建多個虛擬硬盤

(三)/dev/null

這個呢,,在學SHELL編程時就會知道啦,所有發往此設備的信息全部都會變為無,借用重定向可以把不須要在SHELL窗口顯示的信息全部給刪除

用cat顯示c.c文件的內容

[root@xx ~]# cat c.c
main()
{}

接著把其重定向到/dev/null,發現沒有什麼內容會出現在SHELL窗口

[root@xx ~]# cat c.c > /dev/null

[root@xx ~]#

感謝來自OwnLinux:Linux 下幾個特別有用的設備文件的稿件

Copyright © Linux教程網 All Rights Reserved