• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    利用Udev在linux設(shè)備裝載時實現(xiàn)易于識別的設(shè)備文件名

    2014-08-26 17:33:21黎一毅
    科技創(chuàng)新與應(yīng)用 2014年26期

    黎一毅

    摘 要:隨著計算機技術(shù)和的發(fā)展應(yīng)用的推廣,計算機掛載的設(shè)備越來越多,雖然linux依據(jù)設(shè)備類型分配了設(shè)備文件名, 比如eth0, eth1,sda,sdb, 但是人們不查看具體的設(shè)備信息,無法從這類名字上判斷那是哪一個硬件設(shè)備。在計算機維護中,如果有設(shè)備需要臨時裝載移除或者熱插拔,往往系統(tǒng)同類設(shè)備的編號就會混亂,比如人們插拔硬盤,往往sdb,sdc這些設(shè)備序號就會混亂。人們在實際工作中往往希望,linux能將連接的設(shè)備設(shè)定易于識別的設(shè)備文件,這樣不但區(qū)分識別,而且方便人們實習(xí)自動備份等一系列自動功能,在面向用戶的設(shè)備中提升用戶體驗。文章簡要介紹udev在linux系統(tǒng)的使用,在ubuntu 12.04 LTS中使用的實例。

    關(guān)鍵詞:udev;linux;ubuntu

    通過向內(nèi)核中添加代碼也可以實現(xiàn)修改設(shè)備文件名稱的功能,但是很少人會這樣,一是內(nèi)核升級維護不方便,每次升級內(nèi)核都要插入代碼;二是容易干擾內(nèi)核運行,每次都要仔細審查加入的代碼,同時也容易引入漏洞。udev,簡單,方便,成熟。udev是多個linux發(fā)行版默認的設(shè)備管理器,udev規(guī)則易于在不同的發(fā)行版之間移植。

    1 Ubuntu 12.04.04 LTS中的udev

    udev 是Linux kernel 2.6的默認設(shè)備管理器,它的目標是接替devfs和hotplug的功能。udev的守護進程通過偵聽內(nèi)核發(fā)出來的 uevent 來管理 /dev 目錄下的設(shè)備文件。它在用戶模式下管理/dev目錄底下的設(shè)備節(jié)點,不會對內(nèi)核的運行產(chǎn)生影響。因此,內(nèi)核依然會產(chǎn)生設(shè)備文件如sda,sdb等,人們利用udev建立設(shè)備的軟連接一般不會干擾其他軟件的運行。通過編寫udev規(guī)則,人們就可以根據(jù)設(shè)備的不同屬性區(qū)分設(shè)備,用人們習(xí)慣的命名方式設(shè)置設(shè)備文件名。文章介紹ubuntu 12.04 LFS中udev的使用。2012年4月Udev已經(jīng)和systemd項目合并,集成成為一體化的啟動及設(shè)備管理軟件。但在ubuntu12.04 LTS發(fā)行版中使用的是分離的udev 175版本,啟動管理(init)用的還是Ubuntu自己的upstart。系統(tǒng)的預(yù)設(shè)規(guī)則和輔助文件放在/lib/udev/中,用戶自定規(guī)則應(yīng)當存在在/etc/udev/rules.d/目錄下,用戶規(guī)則優(yōu)先級要高于系統(tǒng)預(yù)設(shè)規(guī)則。

    2 獲取udev規(guī)則屬性

    為編寫匹配規(guī)則,人們先要獲取設(shè)備屬性信息,在ubuntu12.04.04 LTS中可以通過查看/sys/下的設(shè)備屬性信息和使用udevadm info命令獲取設(shè)備屬性信息。

    2.1 查看/sys/屬性文件

    /sys目錄下將設(shè)備信息分類存放,比如,硬盤作為塊設(shè)備放置在/sys/block/下,人們執(zhí)行cat /sys/block/sda/device/model查看設(shè)備 sda 的model號。執(zhí)行該命令得到ST3160815AS,那么人們可以建立匹配規(guī)則 ATTR {model}=="ST3160815AS",規(guī)則表示:如設(shè)備model為ST3160815AS,匹配該設(shè)備。

    2.2 通過udevadm info命令

    udevadm info打印指定設(shè)備的所有sysfs記錄的屬性,以用來udev規(guī)則匹配特殊的設(shè)備。不同發(fā)行版中,具體命令不同。通過udevadm info獲取設(shè)備信息是最常用的方法,它可以將設(shè)備節(jié)點的信息一次獲取完,而且可以同時顯示設(shè)備的子節(jié)點和父節(jié)點信息,便于人們編寫規(guī)則。

    可見udev規(guī)則的匹配是從母節(jié)點到子節(jié)點的次序,匹配中同時比較設(shè)備的母節(jié)點和子節(jié)點的屬性信息,可以看到人們執(zhí)行test中,同一條規(guī)則多次命中,軟鏈接me_link的指向多次被改變。所以人們要在啟動時讓me_link指向sda1,要增加一個sda1的屬性,ATTR{start},分區(qū)1的起始扇區(qū)號。

    ATTRS{model}=="ST3160815AS", ATTR{start}=="2048" ,SYMLINK+="me_link"

    這樣計算機在啟動udev創(chuàng)建的me_link會指向sda1,即第一個硬盤的第一個分區(qū)。

    參考文獻

    [1]http://manpages.ubuntu.com/manpages/karmic/en/man7/udev.7.html.

    [2]http://www.freedesktop.org/software/systemd/man/udev.html.

    [3]http://en.wikipedia.org/wiki/Udev.

    [4]http://hackaday.com/2009/09/18/how-to-write-udev-rules/.

    寻乌县| 陵水| 朝阳县| 涞源县| 郓城县| 沙洋县| 靖宇县| 沙河市| 淮南市| 资中县| 军事| 全椒县| 安阳县| 青岛市| 永仁县| 黔江区| 丹寨县| 灵石县| 彭水| 南康市| 左云县| 哈尔滨市| 宣恩县| 昆明市| 平遥县| 宁蒗| 五家渠市| 辽源市| 海盐县| 安龙县| 赤峰市| 集贤县| 平度市| 平昌县| 疏勒县| 福清市| 湾仔区| 宁陕县| 福贡县| 昌图县| 疏附县|