顯示具有 USB 標籤的文章。 顯示所有文章
顯示具有 USB 標籤的文章。 顯示所有文章

2017年7月2日 星期日

[便攜式 Debian 系統實作] - 基礎作業系統架構

(本文主要依據 Debian Live Systems Manual 翻譯)

【便攜式系統】包含了一個根據目標環境而建立的作業系統,包括了以下幾個部份:


  1. Linux內核映像檔(Linux kernel image)。通常命名為 vmlinuz。
  2. 初始虛擬磁碟映像檔(Initial RAM disk image)。通常命名為 initrd。為 Linux 開機時所使用的虛擬磁碟,包含了一些用來掛載系統映像檔可能需要的模組,以及一些用來設置的腳本。
  3. 系統映像檔(System image)。此為作業系統的檔案系統映像檔。我們可使用 SquashFS 壓縮式檔案系統來縮小系統映像檔。這映像檔內容是唯讀的。因此,在開機過程中,【便攜式系統】將啟用虛擬磁碟和「聯合(union)」的機制來啟用系統執行時所需要寫入的檔案。只是,所有修改將在機器關機時丟失,除非我們使用永久性寫入功能(這是可選用的功能)。
  4. 關機加載程式(Bootloader)。一小段特製的程式可從選定的介質中載入,可用來選擇或配置系統,可能使用提示列或從一個選單輸入。當使用者選定了之後,它加載 Linux 內核及相對應的 initrd 以運行相關的系統檔案系統。根據介質和檔案系統格式,我但可使用不同的解決方案:
    • isolinux:從使用 ISO9660 格式的光碟載入。
    • syslinux:從使用 VFAT 分區啟動的硬碟或 USB 隨身碟載入。
    • extlinux:則是從 ext2/3/4 或 btrfs 分區的硬碟或 USB 隨身碟載入。
    • pxelinux:從 PXE 進行網路開機 (netboot)
    • GRUB:則是從 ext2/3/4 分區的硬碟或 USB 隨身碟載入。

2017年6月29日 星期四

[便攜式 Debian 系統實作] - 名詞解釋

(本文主要依據 Debian Live Systems Manual 翻譯)


  • 便攜式系統 (Live System):不需安裝到硬碟即可開機使用的作業系統。
【便攜式系統】通常指的是從可移動介質(例如:CD-ROM 或 USB 隨身碟)或從網絡啟動的操作系統,不需要安裝到硬碟,在運行時即能完成自動配置,開機後即可使用。

一般來說,【便攜式系統】不會影響原本已存在計算機硬碟上的作業系統或檔案,除非我們有意為之。典型的【便攜式系統】可以用光碟或隨身碟開機,有些則能夠通過網路開機。
  • 便攜式介質 (Live medium):使用 live-build 生成出來的可開機的位元檔 (binary) ,可存放於指定的可執行開機程式的介質上,如:光碟、隨身碟 或 網路上存放可開機檔案的位置,都是我們這裡說的便攜式介質。
  • 便攜式系統專案 (Live Systems Project):本專案維護以下具包,包括:live-boot, live-build, live-config, live-toolslive-manual 等等。
  • 育成環境 (Host system):用於創建【便攜式系統】 的環境。
  • 目標環境 (Target system):用於運行【便攜式系統】的環境。
  • live-boot:用於開機載入【便攜式系統】的腳本集。
  • live-build:用於構建客製化的【便攜式系統】的腳本集。
  • live-config:用於在開機過程中配置【便攜式系統】的腳本集。
  • live-tools:在運行中的【便攜式系統】中,用於執行一些特定任務的附加腳本集。
  • live-manual:相關文件集。
  • Debian安裝程序 (Debian Installer (d-i)):Debian官方的軟體安裝系統。
  • 開機參數 (Boot parameters):可以在開機程式提示列輸入以設定內核或 live-config 的參數。 
  • chroot:此命令可使我們能在同一個系統裡同時運行不同的 GNU / Linux 的環境實例,而無需重新啟動系統。
  • 位元映像檔 (Binary image):【便攜式系統】的位元檔,如:live-image-i386.hybrid.iso 或 live-image-i386.img。
有三種最常用類型:

  1. iso-hybrid:可用於虛擬機,光學介質(CD/DVD) 或 USB 等便攜式存儲設備。 
  2. hdd:不適用於光學介質,但適用於 USB 隨身碟(包括:快閃記憶體 或 硬碟),在某些 BIOS 支援 iso-hybrid 有問題的電腦系統上,這可能是解決方案。
  3. netboot:此類型的映像檔需要伺服器的輔助,使用者需要有網路開機的知識與技術。但一旦安裝完成,它是一種非常低成本而便利的方法,可以在區域網路上進行電腦系統開機,而不需要進行一些映像檔燒錄進介質的動作,通常可用來測試並部署映像檔。
  • 目標發行版 (Target distribution:):【便攜式系統】所依據的 Linux 發行版。這可能與【育成環境】的 Linux 發行版不同。
  • 穩定/測試/不穩定 (stable/testing/unstable):
    • 穩定的發行版:目前代號為 jessie,包含 Debian 最新正式發行的發行版。
    • 測試的發行版:(暫時代號為 stretch)是下一個穩定版本的待待命集結區。使用此發行版的主要優點是它具有相對於穩定版本的更新版本的軟件。
    • 不穩定的分配:永久代號為 sid,是 Debian 積極發展的區域。一般來說,這種分配由開發人員所管理。

譯註:

將 Live System 翻成【便攜式系統】,我相信一定有很多人不滿意,甚至存在許多人可能會認為乾脆不翻,直接使用 Live System 會比較貼近真義。

我認為所謂的貼近真義是陷入一種迷思中。

這道理很簡單,若你拿 Live System 去問不是一個相關領域的人,看看他們能不能一聽到 Live System 就能能聯想到「一種系統,不用安裝到硬碟就能執行」。我敢說,就算是以英文為母語的人,也不可能望文生義。

就像我們把 macro 翻譯【巨集】或【宏】,是因為在我們腦中看到這,便存有巨大的集合或宏大的圖像嗎?

當然,不是。

是因為我們知道 macro、【巨集】或【宏】是什麼東西,做什麼用的,我們將這功能與這名字做了聯結,所以才會「望文生義」。

Live System 算是一種新詞,其實我認為也應該造一個新詞來做聯結是比較好一點,我看到的譯法中,我覺得【自生系統】是比較好又貼近英文的譯法,不過,我總覺得那裡怪怪的,所以,還是使用了比較穩健的【便攜式系統】來當 Live System 的中譯,畢竟這概念與 Portable Software 是有點像的(原來是使用可攜式系統,後來改用便攜式系統)。

不過,我開始這研究不是為了可攜式目的的,而是希望設計一套系統,平時可將耗電的硬碟關閉,只靠隨身碟來運作,只有在需要時才把硬碟打開。

【便攜式系統】可以做的東西很多,可攜性只是其中一個特性而已--雖然是很重要的一項。希望大家不會因為這名字而限制了對這系統使用上的想像。

2017年5月18日 星期四

在 Linux 安全移除 USB Disk 的指令

udisksctl unmount -b /dev/sdx1
udisksctl power-off -b /dev/sdx
其中 /dev/sdx 為 USB 所在區塊設備。