2012年10月2日 星期二

RAMDisk Rootfs 支援 Pxeboot 設定筆記

角色定義
Server端:
安裝 CentOS 6.3 + rdrtool ,提供其他設備開機所需檔案
網路 IP 設定為:10.0.0.1 / 24

Client端:
透過網路方式開機,不需安裝任何作業系統


Client端設定方式如下:
BIOS 設定開機方式為支援 PXE 方式的網路開機


Server端設定方式如下:
安裝 rdrtools ,見CentOS 6 安裝設定 RAM Disk Rootfs Tool 摘要
http://rdrtools.blogspot.tw/2012/08/ram-disk-rootfs-tool-centos-6.html


設定 NFS 服務
編輯 /etc/exports 內容如下
/rdrtools       10.0.0.0/255.255.255.0(rw)

重新啟動 NFS 服務
service nfs restart


安裝設定 TFTP 服務
yum xinetd tftp-server

編輯 /etc/xinetd.d/tftp  內容如下
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        #server_args            = -s /var/lib/tftpboot
        server_args             = -s /tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
} 

重新啟動 xinetd 服務
service xinetd  restart


安裝設定 DHCP 服務
yum dhcp dhcp-common

編輯 /etc/dhcp/dhcpd.conf  內容如下
default-lease-time 600;
max-lease-time 1200;
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.0.255;
option routers 10.0.0.2;
option domain-name-servers 10.0.0.2;
option domain-name "mydomain.org";
allow booting;
allow bootp;
subnet 10.0.0.0 netmask 255.255.255.0 {
   range 10.0.0.11 10.0.0.20;
   range 10.0.0.41 10.0.0.50;
   next-server 10.0.0.1;
   filename "gpxelinux.0";
}

重新啟動 dhcpd 服務
service dhcpd restart


安裝設定 syslinux
下載 syslinux
wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.05.tar.gz
tar zxfv syslinux-4.05.tar.gz

mkdir -p /tftpboot/pxelinux.cfg
cp `find ./syslinux-4.05  -name menu.c32` /tftpboot
cp `find ./syslinux-4.05  -name gpxelinux.0` /tftpboot

編輯  /tftpboot/pxelinux.cfg/default 內容如下
DEFAULT menu.c32
PROMPT 0
ALLOWOPTIONS 0
TIMEOUT 50
LABEL linux.nfs
MENU LABEL LINUX.nfs
KERNEL vmlinuz-2.6.32-279.el6.x86_64
append initrd=initramfs-2.6.32-279.el6.x86_64.img.rdrtools root=tmpfs RDRPATH=nfs://10.0.0.1/rdrtools RDRCFG=/rdrtools/rdrtool.tmpfs RDRWAIT=3

其他相關環境設定
cd /rdrtools
ln -s ./ rdrtools
cp /boot/vmlinuz-2.6.32-279.el6.x86_64  /tftpboot
cp /boot/initramfs-2.6.32-279.el6.x86_64.img.rdrtools /tftpboot/

2012年9月19日 星期三

RamDisk Rootfs Tool Pxeboot 參數設定說明

RAMDisk Rootfs Tool C6.2版本,支援 RDRCFG 及 rdrtool_tgz.sh 所產生的檔案放置於NFS 或 CIFS 伺服器上,透過  Pxeboot 開機方式,可建立無磁碟系統,以下是針對使用 Pxeboot 相關設定參數。

Pxeboot 開機設定參數說明

RDRNETDEVICE
設定使用的網路界面
此參數可省略,預設為第一張網路卡

範例
RDRNETDEVICE=eth0

RDRIP
設定使用的網路界面 IP
目前支援 IPv4 固定ip及dhcp,此參數可省略,預設為 dhcp
dhcp設定方式:RDRIP=dhcp

固定IP設定方式:
RDRIP=ip
RDRIP=ip/netmask

範例
RDRIP=dhcp
RDRIP=10.0.0.10
RDRIP=10.0.0.10/24

RDRNETMASK
設定網路遮罩
若RDRIP 設定為 dhcp,此參數可省略  、不生效。
RDRIP 以 ip/netmask 格式方式設定時,勿設定此參數。

範例
RDRNETMASK=24
RDRNETMASK=255.255.255.0

RDRGATEWAY
設定網路預設閘道
若RDRIP 設定為 dhcp,此參數不生效。
此參數可省略

範例
RDRGATEWAY=10.0.0.1

RDRDNS
設定名稱解析伺服器
若RDRIP 設定為 dhcp,此參數不生效。
此參數可省略

範例
RDRDNS=10.0.0.1

RDRPATH
設定 RDRCFG檔案及rdrtool_tgz.sh產生的檔案,所在網路檔案系統,目前支援 NFS 及 CIFS
CIFS 設定方式:RDRPATH=cifs://伺服器位置/分享名稱
NFS設定方式:RDRPATH=nfs://伺服器位置/分享名稱

範例
RDRPATH=nfs://10.0.0.1/rdrtools         <-- 指定 NFS 檔案系統存放 RDRCFG 設定檔RDRPATH=cifs://10.0.0.1/rdrtools       <-- 指定 CIFS 檔案系統存放 RDRCFG 設定檔


RDRNETPARM
設定掛載(mount)網路檔案系統參數

範例
RDRNETPARM="-o username=guest"

其他
若因 RDRNETDEVICE、RDRIP、RDRNETMASK 設定不正確,造成無法正確設定ip 時,系統會嘗試使用第一個網路界面利用dhcp方式取得ip


Pxelinux 使用NFS 設定範例
default linux
label linux
KERNEL vmlinuz
append initrd=initrd.img root=tmpfs RDRPATH=nfs://10.0.0.1/rdrtools RDRCFG=/rdrtools/rdrtool.tmpfs RDRIP=dhcp


Pxelinux 使用CIFS 設定範例
default linux
label linux
KERNEL vmlinuz
append initrd=initrd.img root=tmpfs RDRPATH=cifs://10.0.0.1/rdrtools RDRCFG=/rdrtools/rdrtool.tmpfs RDRIP=10.0.0.100 RDRNETPARM="-o username=guest" RDRNETMASK=24 RDRGATEWAY=10.0.0.1 RDRNETDEVICE=eth1 RDRDNS=10.0.0.1

2012年9月12日 星期三

RamDisk Rootfs Tool GRUB參數設定說明

GRUB 是 CentOS6 Linux 發行版採用的開機管理程式(bootloader),GRUB2設定方式亦相同。

RamDisk Rootfs Tool GRUB 所需設定參數說明
root
設定使用 tmpfs 或 /dev/ram[0-9] 作為 rootfs

範例
root=tmpfs
root=/dev/ram1
root=/dev/ram2

RDRCFG
設定 RDRCFG檔案名稱

範例
RDRCFG=/rdrtools/rdrtool.tmpfs     <--  指定設定檔名稱為 /rdrtools/rdrtool.tmpfs

RDRPATH 
設定 RDRCFG檔案所在裝置位置

範例
RDRPATH=/dev/sda2:ext3             <--  指定RDRCFG 設定檔位置 ,/dev/sda2檔案系統為ext3
RDRPATH=/dev/sda2                     <--  指定RDRCFG 設定檔位置 ,檔案系統系統自行偵測

ramdisk_size
設定 ram disk  /dev/ram[0-9] 大小,rootfs 使用tmpfs此參數可省略,不作用在RamDisk Rootfs Tool。

範例
ramdisk_size=2648000               <--- 指定 ram 大小為 2648000K

RDRFSTYPE
設定使用 ram disk 為 rootfs 的檔案系統格式,此參數可省略,預設為ext4,rootfs 使用tmpfs此參數可省略,不生效。

範例
RDRFSTYPE=ext4               <--- 指定 /dev/ram 檔案系統格為 ext4
RDRFSTYPE=ext3               <--- 指定 /dev/ram 檔案系統格為 ext3
RDRFSTYPE=ext2               <--- 指定 /dev/ram 檔案系統格為 ext2
RDRFSTYPE=xfs                 <--- 指定 /dev/ram 檔案系統格為 xfs


RDRWAIT
RAMDisk Rootfs tool 載入執行前等待時間
若無法正常開機,出現 "xxxxxx-not found RDRPATH_DEVICE(1)" 錯誤訊息,試著加入RDRWAIT 參數

範例 
RDRWAIT=10            <----等待 10 秒


CentOS 6使用 tmpfs 作為 rootfs 範例
title CentOS (2.6.32-279.el6.x86_64.tmpfs)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=tmpfs rd_NO_LUKS rd_NO_LVM rd_NO_MD crashkernel=auto rd_NO_DM RDRCFG=/rdrtools/rdrtool.tmpfs RDRPATH=/dev/sda2:ext4
        initrd /initramfs-2.6.32-279.el6.x86_64.img.rdrtools


CentOS 6使用 ram disk 作為 rootfs 範例
title CentOS (2.6.32-279.el6.x86_64.ram)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/ram9 rd_NO_LUKS rd_NO_LVM rd_NO_MD crashkernel=auto rd_NO_DM ramdisk_size=2648000 RDRCFG=/rdrtools/rdrtool.ram RDRPATH=/dev/sda2:ext4 RDRFSTYPE=ext4
        initrd /initramfs-2.6.32-279.el6.x86_64.img.rdrtools

2012年9月7日 星期五

RDRCFG設定檔說明

RAM Disk Rootfs Tool 在 Linux 載入 initrd (虛擬檔案系統 Initial RAM Disk) 後會讀取 GRUB 中 RDRCFG 參數所設定的設定檔,若無法讀取、缺少或RDRCFG內容設定不正確,將無法正常執行,造成開機失敗。

RDRCFG設定檔內容格式說明:
1.以 # 開頭的行視為註解

範例
# 這是註解

2.參數設定方式
參數名稱=參數值
參數值為多個值時,以空格作為分隔符號
設定參數及值必須位於同一行不可跨行

範例
RDR_PKG=a b c

RDRCFG設定檔參數說明
RDR_PREDIRRAMDisk Rootfs tool 預建目錄
系統會在開機流程中,在 / 目錄下建立所設定目錄,此參數可以省略。

RDR_PKGPATHRAMDisk Rootfs tool載入 tgz檔案所在目錄設定
設定利用 RAMDisk Rootfs Tool 工具 rdrtool_tgz.sh 建立所要載入的 tgz檔案所在目錄,此參數不得省略。

RDR_PKGRAMDisk Rootfs tool載入 tgz檔案設定
設定利用 RAMDisk Rootfs Tool 工具 rdrtool_tgz.sh 建立所要載入的 tgz檔案名稱,若設為 '*' 則是指 RDR_PKGPATH 下所有檔案,此參數不得省略。

RDR_FSTABRAMDisk Rootfs tool 開機掛載檔
設定RAMDisk Rootfs tool 開機掛載檔 /etc/fstab,設定值會自動複製至 rootfs /etc/fstab,可以利用此參數,自動掛載其他檔案系統,若參數不指定,或檔案不存在,系統將會自行產生。

RDR_FSTAB檔案內容設定方式,同一般Linux系統 /etc/fstab設定方式。


RDRCFG設定檔範例
RDR_PREDIR=bin boot cgroup dev etc home lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var rdrtools

RDR_PKG=*
#RDR_PKG=bin boot cgroup etc home lib lib64 media mnt opt sbin usr var

RDR_PKGPATH=/rdrtools

RDR_FSTAB=/rdrtools/fstab.tmpfs


RDR_FSTAB 設定檔範例
tmpfs                   /                       tmpfs   defaults        1 1
/dev/sd2             /rdrtools                ext4    defaults        1 2

2012年8月29日 星期三

Fedora 17 安裝設定 RAM Disk Rootfs Tool 摘要

支援套件版本有
Fedora 17  x86_64/i386

1.安裝設定作業系統
安裝好 Fedora 17系統,/ 位於 /dev/mapper/vg-lv00   /boot 位於 /dev/sda1

確認系統已安裝以下 RPM 套件,rdrtools安裝、設定及執行時會使用
rpm -qa cpio coreutils e2fsprogs glibc-common grep gzip procps tar which dracut
dracut-kernel dracut-network sed

若有缺少套件可以使用以下 yum 指令安裝
yum install cpio coreutils e2fsprogs glibc-common grep gzip procps tar which dracut
dracut-kernel dracut-network sed

目前不確定 SELINUX 是否能正常運作,安裝設定好作業系統後,先關閉 SELINUX,再執行 rdrtools 工具,關閉方式如下
修改 /etc/selinux/config 設定內容後,重新開機
SELINUX=disabled

2.新增開機設定
修改 /etc/grub.d/40_custom ,內容參考如下
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "tmpfs" {
     set root=(hd0,1)
     linux /vmlinuz-3.3.4-5.fc17.i686.PAE root=tmpfs RDRPATH=/dev/mapper/vg-lv00 ro quiet splash RDRCFG=/rdrtools/rdrtool.tmpfs
     initrd /initramfs-3.3.4-5.fc17.i686.PAE.img.rdrtools
     }

存檔後,重新產生設定檔 grub2-mkconfig -o /boot/grub2/grub.cfg

3.下載、解開 rdrtools
http://rdrtools.blogspot.tw/2012/08/ram-disk-root-tool-centos-ramdisktmpfs.html
tar zxfv rdrtools_c6.1.1.tar.gz
檔案列表如下:
examples
install_tool.sh
licensed
rdrtool_tgz.sh
./examples:
fstab.ram
fstab.tmpfs
grub.rdrtools
rdrtool.ram
rdrtool.tmpfs

4.產生支援 RAMDisk rootfs initrd
執行 install_tool.sh 修改 initrd 產生新的 initrd
./install_tool.sh /boot/initramfs-3.3.4-5.fc17.i686.PAE.img /boot/initramfs-3.3.4-5.fc17.i686.PAE.img.rdrtools

5.建立存放系統目錄、壓縮檔及相關設定檔
mkdir /rdrtools
cd rdrtools
cp ./examples/rdrtool.tmpfs /rdrtools/
cp ./examples/rdrtool.ram /rdrtools/
./rdrtool_tgz.sh  /rdrtools

6.其他
使用ramdisk / tmpfs 作為 rootfs 若安裝後修改文件,下次重新開機後,資料將消失,避免此狀況可:
a.重新執行./rdrtool_tgz.sh  產生壓縮檔
b.將欲保存的資料儲存在掛載硬碟中


 /etc/grub.d/40_custom 參數說明
root=tmpfs                                        <--  指定使用 tmpfs 作為 rootfs
RDRCFG=/rdrtools/rdrtool.tmpfs     <--  指定設定檔名稱
RDRPATH= /dev/mapper/vg-lv00   <--  指定存放 rdrtools 設定檔位置

2012年8月24日 星期五

CentOS 6 安裝設定 RAM Disk Rootfs Tool 摘要

支援套件版本有
CentOS 6.0 x86_64/i386
CentOS 6.1 x86_64/i386
CentOS 6.2 x86_64/i386
CentOS 6.3 x86_64/i386
CentOS 6.4 x86_64/i386
CentOS 6.5 x86_64



1.安裝設定作業系統
安裝好 CentOS 6.3系統,/ 位於 /dev/sda2   /boot 位於 /dev/sda1

確認系統已安裝以下 RPM 套件,rdrtools安裝、設定及執行時會使用
rpm -qa cpio coreutils e2fsprogs glibc-common grep gzip procps tar which dracut
dracut-kernel dracut-network sed

若有缺少套件可以使用以下 yum 指令安裝
yum install cpio coreutils e2fsprogs glibc-common grep gzip procps tar which dracut
dracut-kernel dracut-network sed

目前不確定 SELINUX 是否能正常運作,安裝設定好作業系統後,先關閉 SELINUX,再執行 rdrtools 工具,關閉方式如下
修改 /etc/selinux/config 設定內容後,重新開機
SELINUX=disabled

2.修改 /etc/grub 新增開機設定內容參考如下
title CentOS (2.6.32-279.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=UUID=671724c3-851c-411d-9e60-73215837c253 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-279.el6.x86_64.img

title CentOS (2.6.32-279.el6.x86_64.tmpfs)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=tmpfs rd_NO_LUKS rd_NO_LVM rd_NO_MD crashkernel=auto rd_NO_DM RDRCFG=/rdrtools/rdrtool.tmpfs RDRPATH=/dev/sda2:ext4
        initrd /initramfs-2.6.32-279.el6.x86_64.img.rdrtools

title CentOS (2.6.32-279.el6.x86_64.ram)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/ram9 rd_NO_LUKS rd_NO_LVM rd_NO_MD crashkernel=auto rd_NO_DM ramdisk_size=2648000 RDRCFG=/rdrtools/rdrtool.ram RDRPATH=/dev/sda2:ext4 RDRFSTYPE=ext4
        initrd /initramfs-2.6.32-279.el6.x86_64.img.rdrtools

3.下載、解開 rdrtools
http://rdrtools.blogspot.tw/2012/08/ram-disk-root-tool-centos-ramdisktmpfs.html

tar zxfv rdrtools_c61.tar.gz

檔案列表如下:
examples
install_tool.sh
licensed
rdrtool_tgz.sh
./examples:
fstab.ram
fstab.tmpfs
grub.rdrtools
rdrtool.ram
rdrtool.tmpfs

4.產生支援 RAMDisk rootfs initrd
執行 install_tool.sh 修改 initrd 產生新的 initrd

./install_tool.sh /boot/initramfs-2.6.32-279.el6.x86_64.img /boot/initramfs-2.6.32-279.el6.x86_64.img.rdrtools

5.建立存放系統目錄、壓縮檔及相關設定檔
mkdir /rdrtools
cd rdrtools
cp ./examples/rdrtool.tmpfs /rdrtools/
cp ./examples/rdrtool.ram /rdrtools/
./rdrtool_tgz.sh  /rdrtools

6.其他
使用ramdisk / tmpfs 作為 rootfs 若安裝若修改文件,下次重新開機後,資料將消失,避免此狀況可:
a.重新執行./rdrtool_tgz.sh  產生壓縮檔
b.將欲保存的資料儲存在掛載硬碟中


grub 參數說明
root=tmpfs                                        <--  指定使用 tmpfs 作為 rootfs
RDRCFG=/rdrtools/rdrtool.tmpfs     <--  指定設定檔名稱
RDRPATH=/dev/sda2:ext4             <--  指定存放 rdrtools 設定檔位置

root=/dev/ram9                            <--  指定使用 /dev/ram9 作為 rootfs
ramdisk_size=2648000               <--- 指定 /dev/ram9 大小
RDRFSTYPE=ext4                    <--- 指定 /dev/ram9 檔案系統格式

2012年8月21日 星期二

RAM Disk Rootfs Tool

RAM Disk Rootfs Tool 是可以讓 Linux Distribution CentOS 使用 RAMDisk/tmpfs  作為 rootfs 的工具

RAM Disk Rootfs Tool開發環境是 Cent OS 6,但根據 Red Hat Enterprise Linux 6.x Server 為基礎,所修改發布的 Linux 套件,適用的可能性很大

最新版本為 C6.2,支援套件版本有
CentOS 6.4 x86_64
CentOS 6.4 x86_64/i386
CentOS 6.3 x86_64/i386
CentOS 6.2 x86_64/i386
CentOS 6.1 x86_64/i386
CentOS 6.0 x86_64/i386

已測試沒有問題的 Linux 套件有
Fedora 17 x86_64/i386
Oracle Linux  6 U1 x86_64
Scientific Linux 6.3 x86_64
Red Hat Enterprise Linux 6.3 Server (AMD64Intel EM64T)




下載
 2012-09-19 rdrtools-C6.2
 新增支援 Pxeboot 方式

2012-08-28 rdrtools-C6.1.1
新增支援 RDRPATH 設定 LVM、UUID及LABEL方式

2012-08-23 rdrtools-C6.1
新增支援 Fedora 17 x86_64

2012-08-22 rdrtools-C6
初版