使用 GRUB2 掛載 Linux ISO 來執行

因為在電腦教室常常會利用 Clonezilla / DRBL Live 來備份及還原電腦,雖然已經將 Clonezilla / DRBL Live 利用 grub4dos,製作成開機隨身碟,但隨身碟也不是都會放在身上,最好的方式就是直接放在本機上,所以利用 Linux 本身的 GRUB2 掛載 ISO 檔來啟動  Clonezilla / DRBL Live。
參考網站:
Grub2 設定以 Linux LiveCD 的 ISO 檔啟動系統 – 石頭閒語 – 樂多日誌

1. 首先下載 Clonezilla / DRBL Live(有時最新版本不一定能正確執行),這裡是放置在第一顆硬碟的第一個分割區/home/test 目錄
$ wget http://jaist.dl.sourceforge.net/project/clonezilla/clonezilla_live_alternative/20150217-utopic/clonezilla-live-20150217-utopic-i386.iso -P /home/test
$ wget http://downloads.sourceforge.net/project/drbl/drbl_live_stable/2.3.1-6/drbl-live-xfce-2.3.1-6-i686-pae.iso -P /home/test[@more@]2. 修改設定檔 /etc/grub.d/40_custom
$ sudo vim /etc/grub.d/40_custom
加入下面選項
insmod loopback

menuentry “CloneZilla live 20150217-utopic” {
    set isofile=”/home/test/clonezilla-live-20150217-utopic-i386.iso”
    loopback loop (hd0,1)$isofile
    linux (loop)/live/vmlinuz boot=live config locales=”zh_TW.UTF-8″ keyboard-layouts=”NONE” noswap noprompt nosplash vga=788 ip=frommedia findiso=$isofile
    initrd (loop)/live/initrd.img
}

menuentry “DRBL live XFCE 2.3.1-6-i686-pae” {
    set isofile=”/home/test/drbl-live-xfce-2.3.1-6-i686-pae.iso”
    loopback loop (hd0,1)$isofile
    linux (loop)/live/vmlinuz boot=live username=user config quiet nomdoeset locales=”zh_TW.UTF-8″ keyboard-layouts=”NONE” noswap noprompt nosplash vga=791 ip=frommedia findiso=$isofile
    initrd (loop)/live/initrd.img
}

3. 修改 /etc/default/grub
把 GRUB_HIDDEN_TIMEOUT 和 GRUB_HIDDEN_TIMEOUT_QUIET 這二行前面加上 # 註解
$ cp /etc/default/grub ~/grub.default
$ sudo sed -i ‘s/^GRUB_HIDDEN_TIMEOUT/#GRUB_HIDDEN_TIMEOUT/’ /etc/default/grub
$ sudo sed -i ‘s/^GRUB_HIDDEN_TIMEOUT_QUIET/#GRUB_HIDDEN_TIMEOUT_QUIET/’ /etc/default/grub

4. 更新 GRUB2
$ sudo update-grub
正在產生 grub 設定檔 …
找到 linux 映像檔:/boot/vmlinuz-3.13.0-32-generic
找到 initrd 映像檔:/boot/initrd.img-3.13.0-32-generic
找到 linux 映像檔:/boot/vmlinuz-3.13.0-24-generic
找到 initrd 映像檔:/boot/initrd.img-3.13.0-24-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
完成
$ sudo update-grub2
正在產生 grub 設定檔 …
找到 linux 映像檔:/boot/vmlinuz-3.13.0-32-generic
找到 initrd 映像檔:/boot/initrd.img-3.13.0-32-generic
找到 linux 映像檔:/boot/vmlinuz-3.13.0-24-generic
找到 initrd 映像檔:/boot/initrd.img-3.13.0-24-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
完成

5. Ubuntu 開機出現的功能表

Ubuntu MATE 開機出現的功能表

6. Clonezilla 開機

7. DRBL Live 開機

解決在 Windows 8.1 DRBL-winroll 無法自動更改主機名稱的問題

偶然發現在 Windows 8.1 安裝完 DRBL-winroll 後,主機名稱不會自動更改。
[@more@]解決的方式:參考:Google 網上論壇
1. 切換到 C:cygwindrbl_winroll-config 目錄,並修改 hosts.confwinroll.conf

2. 修改 hosts.conf

3. 修改 winroll.conf
    把原先設定檔中的
    HN_WSNAME_PARAM = /RDF:C:cygwindrbl_winroll-confighosts.conf /DFK:$MAC
    改成
    HN_WSNAME_PARAM = /RDF:C:cygwindrbl_winroll-confighosts.conf /DFK:$IP

4. 重新啟動電腦後,可以發現電腦主機名稱已經可以自動更改了!

安裝 putty-tools 工具來管理 Windows

在電腦教室的電腦安裝了 drbl-winroll 後,除了可以利用 drbl-winroll 來自動更改還原之後的電腦名稱之外,也因為它附帶安裝了 cygwin,有啟動 ssh 服務,所以可以在在遠端的 Linux 上管理電腦教室的 Windows 電腦。

在 Ubuntu 14.04 LTS Server 上安裝 putty-tools 工具
$ sudo apt-cache search putty-tools
putty-tools – command-line tools for SSH, SCP, and SFTP

putty-tools 它提供了命令列的 pscp / plink..等工具,雖然這些工具沒有 GUI 介面,但是在處理系統自動化時,非常方便,可以快速達到目的,只是要比較麻煩,要記憶一些參數。

安裝 putty-tools
$ sudo apt-get install putty-tools

在 CentOS 6.x 上安裝
#
yum install putty –enablerepo=epel
[@more@]列出 putty-tools 可用的程式
$ sudo dpkg -L putty-tools | grep bin
/usr/bin
/usr/bin/plink
/usr/bin/puttygen
/usr/bin/pscp
/usr/bin/psftp

CentOS 6.x
# rpm -ql putty | grep bin
/usr/bin/plink
/usr/bin/pscp
/usr/bin/psftp
/usr/bin/pterm
/usr/bin/putty
/usr/bin/puttygen
/usr/bin/puttytel

目前比較常用的有 plink / pscp 二個指令

安裝 DRBL-Winroll

為了徹底揚棄 EzBack,所以改用 DRBL Live+DRBL-Winroll,至於 DRBL-Winroll 的介紹,可以參考:DRBL-Winroll
下載 DRBL-Winroll:http://sourceforge.net/projects/drbl-winroll/files/Stable/
底下進行安裝
1. 選擇 Chinese(Traditional),然後按 OK
[@more@]2. 按 下一步(N)

3. 選擇 我接受(I)

4. 選擇 下一步(N)

5. 安裝路徑,選擇 安裝(I)

6. 要以 Administrator 的身份執行,並按  任意鍵繼續

7. 安裝中

8. 安裝 cygwin,按 任意鍵繼續

9. 安裝 cygwin 中

10. 「自動主機名稱」,請選擇 Y

11. 設定主機名稱樣式及啟動「自動工作群組名稱」,請選擇 Y

主機樣式名稱的設定

12. 設定工作群組樣式

13. 設定群組名稱的前置字元

14. 設定網路模式

15. 配置是否自動加入 AD 網域服務

16. 是否要安裝系統監測服務

17. 是否安裝「自動主機 SID」服務

18. 是否配置 sshd 服務

19. 按 任意鍵繼續

20. 安裝說明

21. 按 任意鍵繼續

22. 按 任意鍵繼續

23. 按 任意鍵繼續

24. 在防火牆中開啟 sshd 22/TCP 服務

25. 終於安裝完成!

使用 grub4dos 來執行 DRBL Live CD

DRBL Live CD 可以用來備份或還整個電腦教室,非常方便,而且是免費的,由國家高速網路中心所開發。
DRBL Live CD 下載:http://drbl.nchc.org.tw/download/sourceforge/
更多如何利用 DRBL Live CD 來備份或還原電腦教室,可以參考:
DRBL live CD 再生龍伺服器版-教室電腦備份還原
DRBL Live CD 執行畫面
[@more@]下載時,可以選擇下載 iso 版本,燒錄成光碟使用,或是下載 zip 版,製作成可開機的 USB 隨身碟版,不過個人覺得燒錄成光碟太不環保了,製作成 USB 隨身碟版又有些浪費,因為一支隨身碟只放了 DRBL Live,所以改用 grub4dos 來處理。

1. 首先先處理好隨身碟安裝 grub4dos,並可以開機
2. 在隨身碟根目錄建立一個目錄,用來存放等一下解壓縮 zip 的路徑
3. 將下載的 zip 檔,解壓縮到隨身碟的根目錄所建立的目錄中
4. 修改 grub4dos 的 menu.lst
加入,各個參數的可以參閱 DRBL Live 的 syslinux 目錄下的設定檔
title   – DRBL Live xfce-2.3.1-6-i686-pae n DRBL Live xfce-2.3.1-6-i686-pae
root (hd0,0)
kernel /DRBL/live/vmlinuz boot=live username=user config quiet nomodeset locales=zh_TW.UTF-8 keyboard-layouts=NONE vga=791 toram=filesystem.squashfs ip=  nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1 live-media-path=/DRBL/live
initrd /DRBL/live/initrd.img

5. 試驗一下

6. 輸入 0,選擇進入 X-window

DRBL Live 客製化

DRBL Live 在開機時須要設定語系

設定鍵盤

選擇要進入的模式

覺得有些小麻煩,希望系統能更加自動化一些![@more@]在 PXE Server 中的設定
LABEL DRBL Live
  MENU LABEL DRBL Live (Default settings)
  # MENU PASSWD
  kernel drbl/live/vmlinuz
  append initrd=drbl/live/initrd.img boot=live username=user config nomodeset quiet noeject locales=zh_TW.UTF-8 keyboard-layouts=us ocs_live_batch=no vga=785 ip=  nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=no fetch=tftp://192.168.1.124/drbl/live/filesystem.squashfs
  TEXT HELP
  * Boot menu for BIOS machine
  * DRBL live version: 2.2.2-19-amd64. (C) 2003-2014, NCHC, Taiwan
  * Disclaimer: DRBL comes with ABSOLUTELY NO WARRANTY
  ENDTEXT

在 PXE Server 功能表加上 DRBL Live

關於 DRBL Live 的介紹,可以參考下列網站:
使用Clonezilla + drbl 建置電腦教室自動還原系統

DRBL Live 下載網站:http://sourceforge.net/projects/drbl/files/
[@more@]1. 下載 DRBL Live(視環境下載所須版本)
# wget http://downloads.sourceforge.net/project/drbl/drbl_live_stable/2.2.2-19/drbl-live-xfce-2.2.2-19-amd64.zip

2. 建立目錄
# mkdir /var/lib/tftpboot/drbl

3. 解壓縮
# unzip drbl-live-xfce-2.2.2-19-amd64.zip -d /var/lib/tftpboot/drbl

4. 修改設定檔
# vim /var/lib/tftpboot/pxelinux.cfg/default
加入下面內容
LABEL DRBL Live
  MENU LABEL DRBL Live (Default settings)
  # MENU PASSWD
  kernel drbl/live/vmlinuz
  append initrd=drbl/live/initrd.img boot=live username=user config nomodeset quiet noeject vga=785 ip=  nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=no fetch=tftp://192.168.1.124/drbl/live/filesystem.squashfs
  TEXT HELP
  * Boot menu for BIOS machine
  * DRBL live version: 2.2.2-19-amd64. (C) 2003-2014, NCHC, Taiwan
  * Disclaimer: DRBL comes with ABSOLUTELY NO WARRANTY
  ENDTEXT

5. PXE 開機畫面

開機畫面

選擇語系

選擇 鍵盤

進入圖形模式

在 Ubuntu Server 14.04 上安裝 PXE Server

之前的安裝方式是採用手動一一安裝所須套件,這裡是直接改用 DRBL 所提供的套件。
[@more@]1. 安裝
安裝 tftp 和 dhcp server 及一些所須的套件
# apt-get -y install tftpd tftp isc-dhcp-server update-inetd xinetd clonezilla drbl
建立 dhcp server 設定檔
# vim /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.201 192.168.1.210;
    option subnet-mask 255.255.255.0;
    option routers 192.168.1.254;
    option broadcast-address 192.168.1.255;
    filename “pxelinux.0”;
    next-server 192.168.1.124;
}

2. 啟動 dhcpd server
# /etc/init.d/isc-dhcp-server restart
 * Stopping ISC DHCP server dhcpd                                        [fail]
 * Starting ISC DHCP server dhcpd                                        [ OK ]

3. 檢查 dhcpd server 是否有正常啟動
# netstat -lu | grep boot
udp        0      0 *:bootps                *:*
udp        0      0 *:bootpc                *:*

4. 修改 tftpd server 設定,設定目錄在 /tftpboot/nbi_img
# vim /etc/xinetd.d/tftp
service tftp
{
    disable = no
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s /tftpboot/nbi_img
    per_source      = 11
    cps         = 100 2
    flags           = IPv4
}

4. 重新啟動 xinetd
# service xinetd restart

5. 檢查 tftpd server 是否有正常啟動
# netstat -lu | grep tftp
udp        0      0 *:tftp                  *:*

6. 安裝 syslinux
# apt-get install syslinux

7. 建立 PXE 開機的開機選單
# vim /tftpboot/nbi_img/pxelinux.cfg/default