2018年3月21日 星期三

CentOS 7 as initramfs for PXE server

1. 安裝CentOS 7.x 在任意一台電腦 or 使用已安裝CentOS 7.x的電腦

2. 停用SELinux(做完的無碟系統仍然會是開啟SELinux的)
   • Edit /etc/sysconfig/selinux
   • Set SELINUX=disabled
   • reboot to apply the new SELinux configuration
 
3. 建立相關資料匣
   # mkdir -p /var/nodes/initramfs
   # mkdir -p /var/nodes/newroot
   # cd /var/nodes/initramfs
   # mkdir bin dev etc proc sys usr usr/bin usr/sbin
 
4. 下載busybox
   # cd /var/nodes/initramfs/bin/
   # wget https://www.busybox.net/downloads/binaries/1.21.1/busybox-x86_64
   # chmod +x busybox-x86_64
   # ln -s busybox-x86_64 sh
   # cp /etc/hosts /var/nodes/initramfs/etc/hosts --> 待確認
 
5. 建立init檔
   # vim /var/nodes/initramfs/init
   ------------------------------------------------------------
   #!/bin/sh
   echo "Welcome to the initramfs!"
   # Make all core utils reachable
   export PATH="/bin:/sbin:/usr/bin:/usr/sbin"
   # Create all busybox's symb links
   /bin/busybox-x86_64 --install -s
   # Mount /newroot in tmpfs
   mount -t tmpfs -o size=2048M tmpfs /newroot
   # Unpack the root file system
   tar -x -z -f newroot.tar.gz
   # Mount /usr read-only and /home read-write from NFS server ----> 回存到nfs server
   #mount -t nfs4 -o ro $NFS_server_IP:/usr /newroot/usr
   #mount -t nfs4 -o rw $NFS_server_IP:/home /newroot/home
   # Switch the root filesystem and start normal boot process
   exec switch_root /newroot /sbin/init
   # Drop to shell if switch_root fails
   sh
   ------------------------------------------------------------
   # chmod +x /var/nodes/initramfs/init
 
6. 透過yum安裝OS到newroot下
   # yum -y groupinstall "Minimal Install" --installroot=/var/nodes/newroot --releasever=/
   可以使用# yum groups list查詢group
 
7. 將其它所需的套件補完
   # yum -y install kernel kernel-devel ipmitool dialog --installroot=/var/nodes/newroot --releasever=/
 
8. 配置newroot OS
   # cp /etc/resolv.conf /var/nodes/newroot/etc/resolv.conf
   # vim /var/nodes/newroot/etc/fstab
     none  /tmp     tmpfs defaults 0 0
     tmpfs /dev/shm tmpfs defaults 0 0
     sysfs /sys     sysfs defaults 0 0
     proc  /proc    proc  defaults 0 0
   關閉selinux
   # vim /var/nodes/newroot/etc/selinux/config
     SELINUX=disabled
   設定hostname
   # vim /var/nodes/newroot/etc/hosts
     127.0.0.1     localhost
     192.168.0.100 nfsserver

9. 設定os root password(沒有關閉SELinux會不成功)
   # chroot /var/nodes/newroot
   # passwd root
   # exit
 
10. 壓縮newroot os (注意壓縮路徑)
   # cd /var/nodes/
   # tar -cvzf initramfs/newroot.tar.gz newroot

11. 壓縮成initramfs.cpio.gz
   # cd /var/node/initramfs
   # find . -print0 | cpio --null -ov --format=newc | gzip -9 > /var/nodes/initramfs.cpio.gz

12. 在PXE上建立資料匣
   # mkdir -p /var/lib/tftpboot/pxelinux/ramdisk
 
13. 將vmlinuz & initramfs複製到PXE server上
   # scp /var/nodes/initramfs.cpio.gz root@192.168.100.1:/var/lib/tftpboot/pxelinux/ramdisk/
   # scp /var/nodes/newroot/boot/vmlinuz-3.10.0-693.21.1.el7.x86_64 root@192.168.100.1:/var/lib/tftpboot/pxelinux/ramdisk/

14. 設定PXE file
   # vim /var/lib/tftpboot/pxelinux/pxelinux.cfg/defaults
    default menu.c32
    prompt 0
    label centos7.4 Ramdisk
    kernel /ramdisk/vmlinuz-3.10.0-693.21.1.el7.x86_64
    append initrd=/ramdisk/initramfs.cpio.gz rw ip=dhcp net.ifnames=0 selinux=0





CentOS 7 diskless boot

1. 安裝CentOS 7.x 在任意一台電腦

2. 停用SELinux(做完的無碟系統仍然會是開啟SELinux的)
   • Edit /etc/sysconfig/selinux
   • Set SELINUX=disabled
   • reboot to apply the new SELinux configuration
 
3. 設定臨時環境變數
   # export NFSROOT=/home/nfsroot
   # mkdir ${NFSROOT}
 
4. 透過yum安裝OS到nfsroot下
   # yum -y groupinstall "Server with GUI" --installroot=${NFSROOT} --releasever=/
 
5. 將其它所需的套件補完
   # yum -y install kernel nfs-utils ipmitool dialog  --installroot=${NFSROOT} --releasever=/
 
6. 配置nfsroot OS
   # cp /etc/resolv.conf ${NFSROOT}/etc/resolv.conf
   # vim ${NFSROOT}/etc/fstab
     none  /tmp     tmpfs defaults 0 0
     tmpfs /dev/shm tmpfs defaults 0 0
     sysfs /sys     sysfs defaults 0 0
     proc  /proc    proc  defaults 0 0

   關閉selinux
   # vim ${NFSROOT}/etc/selinux/config
     SELINUX=disabled

   設定hostname
   # vim ${NFSROOT}/etc/hosts
     127.0.0.1     localhost
     192.168.0.100 nfsserver

7. 設定nfsroot os root password(沒有關閉SELinux會不成功)
   # chroot ${NFSROOT}
   # passwd root
   # exit

8. 建立含有nfs的initramfs
   # vim $NFSROOT/etc/dracut.conf
   add_dracutmodules+="nfs"
   # chroot $NFSROOT
   # dracut --no-hostonly --nolvmconf -m "nfs network base" --xz /boot/initramfs.pxe-$(uname -r) $(uname -r)
   # chmod ugo+r /boot/initramfs.pxe-$(uname -r)  --> user,group,other給予讀的權限
   # exit
 
9. 將nfsroot的資料複製到nfsserver上
   # rsync -av ${NFSROOT}/ root@192.168.100.1:/home/CentOS74 --> -a 歸檔模式 -v 詳細內容
 
10. 在PXE上建立資料匣
   # mkdir -p /var/lib/tftpboot/pxelinux/nfsroot
q
11. 在PXE上建立NFS server
    # yum -y install nfs-utils
    # vim /etc/exports
  /home/CentOS74 192.168.100.*(rw,sync,no_root_squash)
    # systemctl start nfs.service

12. 複製nfsroot的vmlinux initramfs到PXE
   # scp ${NFSROOT}/boot/vmlinuz-3.10.0-693.el7.x86_64 ${NFSROOT}/boot/initramfs.pxe-3.10.0-693.el7.x86_64 root@192.168.100.1:/var/lib/tftpboot/pxelinux/nfsroot/
 
12. 設定PXE file
   # vim /var/lib/tftpboot/pxelinux/pxelinux.cfg/defaults
    default menu.c32
    prompt 0
    label centos7
    kernel vmlinuz-3.10.0-514.21.2.el7.x86_64
    append root=/dev/nfs initrd=initramfs.pxe-3.10.0-514.21.2.el7.x86_64 nfsroot=192.168.130.11:/path/to/exportdir rw panic=60 ipv6.disable=1

2014年10月8日 星期三

透過Tera Term ssh 連入Linux 中文顯示亂碼問題解決!

1. 確認檔案 /etc/sysconfig/i18n 語言編碼格式是否為UTF-8
    #cat /etc/sysconfig/i18n
     LANG="en_US.UTF-8"
     SYSFONT="latarcyrheb-sun16"

2. 開啟Tera Term --> Setup --> Terminal... 
    修改成下圖紅框中的參數,即可顯示中文。
    


2014年8月13日 星期三

Linux 下CPU頻率的調節模式

1. 查調系統中CPU頻率的調節模式有哪些?
#cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

2. 目前系統預設的調節模式為?
#cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

3. 各模式的特性
ondemand
當CPU的使用率超過1個固定的百分比,就會將CPU頻率升到最高,之後再依負載情形降頻,為絕大多數Linux預設的模式。

conservative
與Ondemand類似,但是提升時脈的行為較為消極,會在CPU可運作的時脈中一階一階往上跳,反應比較緩慢但較省電。

userspace
自定義模式,將頻率調節的決策權交給了用戶應用程序,並提供了相應的端口供用戶應用程序調節CPU 運行頻率使用。可以通過手動編輯配置文件進行配置。

powersave
將CPU頻率固定在最低。

performance
將CPU頻率控制在最高。

Linux 網路效能測試工具 iperf

1.  至官網下載 https://iperf.fr/ 

2. 解壓縮、編譯,安裝
 #tar zxvf iperf-2.0.5-source.tar.gz
 #cd iperf-2.0.5/
 #./configure && make && make install

3. 測試
  3.1 Server 端指令
     #iperf -s
  3.2 Client 端指令
     #iperf -c $IP -t 60 -d -i 1

4. 參數說明
   -s = Server mode
   -c = Client mode
   $IP = Server IP
   -t = 測試時間(秒)
   -d = 雙向測試
   -i = 間隔(秒)顯示報告

5. 將測試數據生成報告
  #iperf -c 192.10.1.1 -t 60 -i 1 | tee -a test.log
  

Linux 限制 CPU 使用 % 工具

1. http://cpulimit.sourceforge.net/ 下載 cpulimit-1.1.tar.gz

2. 解壓縮,編譯
#cd ~/Download/
#tar zxvf cpulimit-1.1.tar.gz
#cd cpulimit-1.1/
#make

3. 執行
#./cpulimit -p PID -l 50
-p = PID 
-l  = %   ( 需乘以核心數量,假設四核心 = 4 x 50% = 200 )

2014年8月12日 星期二

Linux Mint 17 MATE 64-bit 安裝 Chrome 瀏覽器

1. 到 http://www.google.com/intl/zh-TW/chrome/ 下載 Chrome 瀏覽器
 
2. 安裝 chrome
   #cd ~/Download
   #sudo gdebi google-chrome-stable_current_amd64.deb

3. 將Cache 設定到 ramdisk 中
    編輯啟動屬性,在指令中/usr/bin/google-chrome-stable %U 插入--disk-cache-dir="/dev/shm/chrome/"
    變成/usr/bin/google-chrome-stable --disk-cache-dir="/dev/shm/chrome/" %U
    啟動chrome 之後,在/dev/shm/中檢查是否有chrome資料匣