如何建立fedora的DOM系統
目地:製做一個可以隨插即用的 Linux DOM
工具:HDD0(開發用的OS), HDD1(建立DOM用的OS), SATADOM(最終要建立的)
更新記錄
item | note |
---|---|
20160706 | 第一版 |
目錄
- 目前使用dom規格
- 建立DOM需要的rootfs及boot內容(Fedora HDD1)
- 建立 HDD1 rootfs.tgz
- 4G SATA DOM 建立
- 建立DOM boot內容
- 建立DOM root內容
- 如何使用parted建立dom使用的分割區
- 參考來源
流程如下:
1.將原本的fedora系統先安裝到HDD1裡面
2.將此HDD1系統裁切至適合的大小(目前是用4G DOM)
3.之後將此HDD1 mount到原本開發系統HDD0
4.格化DOM, 設定label, 安裝grup2, 修改fstab及grup.cfg
目前使用dom規格
item | description |
---|---|
interface | STAT III 6.0 Gb/s |
Flash Type | SLC |
RW max. | 300 /130 |
建立DOM需要的rootfs及boot內容(Fedora HDD1)
格式化預計安裝Fedora HDD1及安裝
先使用parted移除全部的partition(即sdc3,sdc2,sdc1)
- ex. parted -s /dev/sdc rm 3
- ex. parted -s /dev/sdc rm 2
- ex. parted -s /dev/sdc rm 1
清除MBR
- dd if=/dev/zero of=$1 bs=446 count=1
建立使用分割區(sda1:boot, sda2:rootfs)
1 | fdisk -u $1 << EOF |
格式化及設定hdd label
- mkfs.ext4 /dev/sdc1
- e2label /dev/sdc1 dom-boot
- mkfs.ext4 /dev/sdc2
- e2label /dev/sdc2 dom-rootfs
放入fedora光碟片,開始安裝Fedora-Live-Workstation-x86_64-22到HDD1
- 記得要不設定LVM
裁切 HDD1 Fedora系統
- 安裝完fedora22大約佔4G空間,若在更新後大約為5G空間,因此需要裁切
- 安裝完成,進入系統記得更新dnf update (更新package,同時也會自動更新kernel)
更改系統設定
- 關閉selinex: vi /etc/selinux/config (SELINUX=disabled)
這個很重要,不然即使建立好dom也無法登入 - Disable Firewalld Service: systemctl mask firewalld
- 設置電源,禁止白屏 (Blank screen : Never / Automatic suspend : Off )
- 設置網絡: 設定為固定ip
- 關閉selinex: vi /etc/selinux/config (SELINUX=disabled)
縮小空間
- du -h: 都沒有刪除任何東西應該都會大於4G (預計放入4G DOM裡面,因此需要小於3.5G左右)
- dnf remove libreoffice* (312M)
- dnf remove firefox (148M)
- dnf remove java-1.8.0-openjdk* (106M)
- dnf remove gedit* (16M)
- 可以用dnf remove就用dnf, 若不刪才用rm -rf
- rm -rf /usr/share/help (202M)
- rm -rf /usr/share/doc (111M)
- /usr/share/locale/: 只保留en_US
移除不必要的kernel
- uname -a : 列出系统中正在使用的内核
- rpm -qa | grep kernel : 查询系统中全部的内核
- dnf remove kernel-2.6.32-279.9.1.el6.x86_64: 删除沒有使用的内核
用df -h檢查目前使用空間
裁切 HDD1
- 若是安裝fedora24及更新相關package之後為5G
- 需要在將下例移除才能為3.6G大小
1 | dnf remove qt* |
dnf 說明
參考來源 - DNF的命令使用教学
dnf provides
使用dnf provides /bin/bash查出在那個packagednf list installed
查看那些已安裝
建立 HDD1 rootfs.tgz
將原本已建立及裁切好的HDD1,mount到開發系統中
- mount /dev/sda1 /media/hdd1-boot
- mount /dev/sda2 /media/hdd1-rootfs
建立root.tar.gz
- cd /media/hdd1-rootfs (切換到root目錄)
- tar cvzf ~/rootfs.tgz ./*
4G SATA DOM 建立
SATA DOM 格式化
建立sata-dom分割區
- 先使用parted移除全部的partition(即sdc3,sdc2,sdc1)
- ex. parted -s /dev/sdc rm 1
建立分割區及設定開機partition
1 | fdisk $1 << EOF |
格式化sata-dom
- mkfs.ext4 /dev/sdc1
- e2label /dev/sdc1 dom-boot
- mkfs.ext4 /dev/sdc2
- e2label /dev/sdc2 dom-root
記得使用blkid查看hdd label是否正確
1 | /dev/sda1: LABEL="dom-boot" UUID="2cd0d8db-192d-424f-a897-55a79926962a" TYPE="ext4" PARTUUID="6761d7de-01" |
建立DOM boot內容
- 將已格式化好的dom-boot mount到系統
- ex. mount /dev/sdc1 /media/dom-boot
- 建立boot grub2
- grub2-install –root-directory=/media/dom-boot/boot /dev/sdc
- 由/media/hdd1-boot內,覆製開機需要的檔案到/media/dom-boot裡面
- vmlinux
- System.map
- initramfs
- config
- efi
1 | [root@localhost /]# ls -l /media/dom-boot/ |
- 建立/media/dom-boot/boot/grub2/grub.cfg檔案
- 由/media/hdd1-boot/grub2/grub.cfg覆製過來並且修改如下
- set timeout=1 :由5秒改為1秒,開機等待使用者選擇不同的kernel時間
- 修改grub.cfg:設定開機hdd的label
DOM grub.cfg 修改前
1 | ### BEGIN /etc/grub.d/10_linux ### |
DOM grub.cfg 修改後
1 | ### BEGIN /etc/grub.d/10_linux ### |
建立DOM root內容
- 將已格式化好的dom-root mount到系統
- ex. mount /dev/sdc1 /media/dom-rootfs
- 解壓root.tgz到/media/dom-rootfs
- 修改/media/dom-rootfs/etc/fstab 如下
1 | LABEL=dom-rootfs / ext4 defaults 1 1 |
建立DOM image
到目前為此,可以先驗證此stat dom是否可以正常
- umount /media/dom-boot
- umount /media/dom-rootfs
- 將sata-dom移除,安裝到另一台電腦上,測試是否正常
建立dom image
- 備份:dd if=/dev/sdc of=/home/dom.img
- 還原: dd if=dom.img of=dev/sdc
如何使用parted建立dom使用的分割區
清除MBR
- parted -s /dev/sda print: 先確認是4G的DOM
清除之前的partition
- parted -s /dev/sda rm 2
- parted -s /dev/sda rm 1
清除MBR
dd if=/dev/zero of=/dev/sda bs=446 count=1
mklabel
- parted -s /dev/sda mklabel msdos
建立partition
1 | parted -s /dev/sda mkpart primary 0% 128 |
設定開機
1 | parted -s /dev/sda set 1 boot on |