色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 基于USB接口的微型桌面Linux系統(tǒng)設計方案

          基于USB接口的微型桌面Linux系統(tǒng)設計方案

          作者: 時間:2012-07-27 來源:網絡 收藏

          SquashFS 壓縮是只讀的,從而避免了對磁盤不必要的擦寫,但同時也造成了修改數據不能保存的問題。

          AUFS 的出現正好解決了上述問題,它管理一個基本文件(即本文中的Squashfs 鏡像,保持原只讀狀態(tài))和一個讀寫存儲文件系統(tǒng)(必須具有讀寫權限)。通過AUFS,用戶可以虛擬地修改基本文件系統(tǒng)上的文件,但修改后的結果卻保存在讀寫存儲文件系統(tǒng)中,從而實現了數據的透明修改。

          3.5 Initrd 初始化內存盤

          Initrd(boot loader Initialized RAM Disk 的縮寫),由boot loader 初始化。本系統(tǒng)使用的boot loader 為GNU GRUB 0.97.如果Grub 已配置Initrd, 內核在啟動前,會把存儲設備中的Initrd 文件加載到內存,作為一個臨時根文件系統(tǒng);內核啟動時通過先執(zhí)行Initrd 中的init 文件,完成設備驅動模塊和squashsf、aufs 文件系統(tǒng)模塊的加載,并完成真正的根文件系統(tǒng)的掛載,然后執(zhí)行系統(tǒng)中的/sbin/init 進程。

          與普通IDE、SATA 硬盤相比, 存儲設備從驅動模塊加載到設備可用,比較慢,需要幾秒鐘。

          因此內核在掛載 存儲設備時,會出現: 設備沒有初始化完成,真正根文件系統(tǒng)掛載失敗的問題。為了解決此問題,筆者在Initrd 中修改init 可執(zhí)行文件,當加載USB 驅動后,系統(tǒng)將休眠5 秒,讓USB 設備初始化完成后再掛載USB 存儲設備中的根文件系統(tǒng)。本系統(tǒng)的init 文件配置如下:

          本系統(tǒng)Initrd 中的最小化根文件系統(tǒng)由BusyBox創(chuàng)建,包含bin、dev、etc、lib、mnt、proc、sbin、sys這些必須的目錄和相關文件。由于BusyBox 生成的modprobe 命令不能正常執(zhí)行,所以需要復制宿主系統(tǒng)中的modprobe 命令并替換Initrd 中的sbin 目錄中的同名文件,同時通過ldd 查看modprobe 依賴的庫文件,并復制到Initrd 中的lib 目錄。

          最后在宿主機器上通過命令:

          find . | cpio –o –H newc | gzip > /boot/initrd.img-2.6.27.27 制作Initrd 鏡像文件。

          3.6 Grub 啟動引導器

          GNU GRUB (GNU GRand Unified Bootloader 的縮寫),是GNU 項目中一個多操作系統(tǒng)啟動引導程序,也是 系統(tǒng)中最常用引導工具之一。為了讓系統(tǒng)從USB 設備啟動,必須將GRUB 程序安裝在USB 存儲設備的主引導記錄(MBR)中。

          以GRUB 0.9X 的安裝步驟如下:

          安裝grub 程序在U 盤的/boot/grub 目錄下,確保其目錄存在menu.lst,stage1,stage2 三個文件。

          進入grub 命令窗口,運行以下命令安裝到U 盤的MBR:

          grub>root(hd1,0) #假定 系統(tǒng)所在盤符為第二塊硬盤的第一個分區(qū)

          grub>setup(hd1)

          實際操作時根據硬盤分區(qū)不同作相應修改。

          修改/boot/grub/menu.lst 文件,本文的menu.lst 如下:

          3.7 Xfce 環(huán)境

          Xfce 是一款適用于多種*NIX 系統(tǒng)上運行的輕量級環(huán)境,它的目的是在節(jié)省系統(tǒng)資源的情況下能夠快速加載并執(zhí)行應用程序。與Gnome 和KDE等比較臃腫的環(huán)境相比,Xfce 占用的系統(tǒng)資源少,同時它擁有很小的依賴性和很好的模塊性。本系統(tǒng)所用的Xfce 4.6.2 主要由實用工具libxfce4util、微件庫libxfcegui4、擴展庫exo、菜單庫libxfce4menu、窗口管理xfwm4、桌面管理xfdesktop、面板xfce4-panel、會話管理xfce4-session、設置管理xfce4-settings、配置管理xfconf、文件管理thunar、實用程序xfce-utils、應用程序查找xfce4-appfinder 等部件構成。

          4 具體實現

          4.1 系統(tǒng)在USB 盤上的實現

          在宿主系統(tǒng)上構建好整個Linux 桌面系統(tǒng)后,按前所述配置好只讀文件系統(tǒng)鏡像system.squashfs、初始化內存盤Initrd、內核鏡像vmlinuz、Grub 中的menu.lst 文件、USB 盤標志文件LABEL,然后按以下步驟將系統(tǒng)移植進USB 盤。

          ①準備一個8G 的USB 盤,分為兩個區(qū):一個分區(qū)作為系統(tǒng)區(qū),文件系統(tǒng)為EXT2,并激活為啟動分區(qū),作為Linux 系統(tǒng)使用;一個分區(qū)為數據區(qū),文件系統(tǒng)為FAT32,平時作為與Windows 系統(tǒng)交互的分區(qū),保存移動辦公數據。

          ②將system.squashfs、Initrd、vmlinuz、LABEL 和Grub 相關文件復制到系統(tǒng)區(qū),并在系統(tǒng)區(qū)中新建system_ro( 用于掛載squashfs 只讀文件系統(tǒng)) 、system_rw(用于掛載aufs 文件系統(tǒng)時的修改文件存儲目錄)、system(用于最終文件系統(tǒng)的掛載目錄)三個目錄。

          ③運行grub 程序中的root、setup 命令將啟動引導信息寫入USB 盤的系統(tǒng)區(qū)的MBR.

          4.2 系統(tǒng)啟動過程

          USB 桌面Linux 系統(tǒng)的啟動過程如圖2 如示。

          計算機開機自檢, BIOS 引導到USB 的磁盤設備,通過啟動引導管理器Grub,加載Linux 內核文件vmlinuz,內核將初始化內存盤initrd.img-2.6.27.27加載到內存,形成一個臨時根文件系統(tǒng),通過執(zhí)行Initrd 中的init 可執(zhí)行文件,進行sysfs、proc 文件系統(tǒng)的加載,并對硬件進行初始化,相關硬件驅動、squashfs、aufs 模塊的加載后,掛載系統(tǒng)只讀鏡像system.squashfs,并通過聯合文件系統(tǒng)aufs 使其可寫,然后轉到真正的根文件系統(tǒng)執(zhí)行命令/sbin/init,完成桌面Linux 系統(tǒng)的啟動。

          圖2 系統(tǒng)啟動過程

          圖2 系統(tǒng)啟動過程

          5 實驗結果

          本文實現了在USB 接口的存儲設備上構建桌面Linux 系統(tǒng),在具有USB 接口啟動功能的各種主流品牌臺式計算機、筆記本和兼容機上都能成功運行,并且在硬件配置比較低的老式486、586 等機器也能流暢地運行,根據機器硬件配置的不同,一般啟動時間為20 秒至50 秒,具有很好的實用價值,真正實現了便捷、高效的移動辦公需要。本系統(tǒng)成功啟動圖形桌面系統(tǒng)后的效果如圖3 所示。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關文章:linux教程




          評論


          相關推薦

          技術專區(qū)

          關閉