在 M515 電腦教室安裝及使用 linux

這篇是 107 下學期 (2018 年春天) 的過時資料!

M515 電腦教室可供 「雲端運算」 (日三A、進) 及 「自由軟體與資訊安全」 (進) 三個班使用的空間為 /dev/sda1, 共 49.8G。

一、 開機

[也請參考 M515 gregslab18A 安裝進度 (座位表)。]

插入隨身碟後, 先按 F9。 [在 M211 教室則是按 F12] 選擇從隨身碟開機。 看一下左右同學, 跟他的選單唯一不同的地方, 可能就是隨身碟。

進入朝陽空拍圖開機選單時, 趕快先按一下上下箭頭, 以便阻止它數秒 (20秒)。

  1. 如果電腦裡已有 gregslab (完整版), 請選 「gregslab @ M515」 之類的。 開完後隨身碟可拔掉。
  2. 如果電腦裡已有 gantix (精簡/救援版), 請選 「gantix @ M515」 之類的。 開完後隨身碟可拔掉。
  3. 如果電腦裡還沒有 linux, 但你已做好自己的開機隨身碟, 建議選擇 「gantix ... persistence」 那一列。 開完後隨身碟不可拔掉。
  4. 如果電腦裡還沒有 linux, 而且拿來開機的不是你自己的隨身碟, 請選 「gantix ... boot to ram!」 開完後隨身碟可拔掉, 但請勿開啟 firefox 或 chrome, 因為你的記憶體可能會不夠用

進入圖形介面後, 開啟 lxterminal。 打 sudo bash 變身成 root。

二、 複製 gantix17 開機隨身碟

[本節僅適用於在記憶體裡或在隨身碟上執行作業系統的狀況, 不適用於執行硬碟作業系統的狀況]

sudo bash
ls /dev/sd*
fdisk -s /dev/sd[ag]
# 現在插入隨身碟
ls /dev/sd*
fdisk -s /dev/sd[agh]

比對插入前跟插入後的差異, 找出你的隨身碟的代號。 以下請把 /dev/sdz 都改成你的隨身碟的代號。

mbootuz.py mkboot /dev/sdz
time mbootuz.py cplive -d gantix17 -p greg.img -Z 512M /dev/sdz

第一個指令在你的隨身碟上建立開機選單。 第二個指令真的把作業系統複製過去, 要花幾分鐘。 又, greg.img 請改成你的代號或你高興自取的名字。 但如果你的隨身碟剩下不到 2.5G 的空間, 那就沒辦法做 「可讀寫」 的部分, 也就是第二個指令改成 time mbootuz.py cplive -d gantix17 /dev/sdz

三、 修改你的隨身碟的設定檔

以下凡是說要修改 extlinux.conf 設定檔的地方, 指的都是你的隨身碟上的 /boot/syslinux/extlinux.conf 。 比方說你的隨身碟掛載在 /media/sdz1 底下, 那就先把你自己的設定檔搬到別處去、 備份起來: mv /media/sdz1/boot/syslinux/extlinux.conf /media/sdz1。 再把 老師提供的範本 抓回去: wget -O /media/sdz1/boot/syslinux/extlinux.conf https://www.cyut.edu.tw/~ckhung/c/cloud182/extlinux.conf。 最後再這樣進去編輯: nano /media/sdz1/boot/syslinux/extlinux.conf。 改完存檔退出之後, 要記得 umount /dev/sdz1 卸載!

關於 extlinux.conf 的更多說明, 請見 extlinux 多重開機分解動作教學。 不必從頭讀, 搜尋你要的關鍵詞即可。

四、 燒毀+重建硬碟上的 volume groups 及 logical volumes

請根據現場狀況修改以下兩個設定。 後面會用到。 (m515 的 VG_DEV 請設成 /dev/sda1 ; m211 的 VG_DEV 請設成 /dev/sda4)

export VG_NAME=m515
export VG_DEV=/dev/sda99

再用 lvs 查看。 如果有看到 gantix17、 day、 night、 tmp、 swap 共五個 logical volumes, 請略過本節。

vgcreate $VG_NAME $VG_DEV
lvcreate -n gantix17 -L 6G $VG_NAME
lvcreate -n day -L 12G $VG_NAME
lvcreate -n night -L 12G $VG_NAME
lvcreate -n tmp -L 12G $VG_NAME
lvcreate -n swap -L 1G $VG_NAME
mkfs -t ext4 /dev/mapper/${VG_NAME}-gantix17
mkfs -t ext4 /dev/mapper/${VG_NAME}-day
mkfs -t ext4 /dev/mapper/${VG_NAME}-night
mkfs -t ext4 /dev/mapper/${VG_NAME}-tmp
mkswap /dev/mapper/${VG_NAME}-swap

五、 把 gregslab18A.squashfs 解壓縮到硬碟上

掛載你的開機隨身碟, 上面要有 g18A/gregslab18A.squashfs 這個檔案。 根據你的掛載點, 修改以下設定的路徑:

export G18A_SQ=/media/sdz1/g18A/gregslab18A.squashfs

然後開始複製與設定:

mkdir /mnt/g18A /mnt/target
mount $G18A_SQ /mnt/g18A
mount /dev/mapper/${VG_NAME}-day /mnt/target
cp -a /mnt/g18A/* /mnt/target

perl -i.bak -pe "s|^#(.*?-)swap none|/dev/mapper/${VG_NAME}-swap none|" /mnt/target/etc/fstab
perl -i.bak -pe "s|^#UUID=e2c86c37-291e-4488-87ee-762c5fe9ef34|/dev/mapper/${VG_NAME}-day|" /mnt/target/etc/fstab
umount /mnt/target
umount /mnt/g18A

最後要記得卸載你的隨身碟!