Skip to content

Bios_Update_Tool

xuan103 edited this page Jul 29, 2020 · 4 revisions

目錄


介紹

概述

ZZZZ ZZZZZ

方法

下載 Ubuntu 20.04

於 “下載選項” 下方 “至此瀏覽所有版本及檔案” 點擊,如下圖。

download1

選擇版本。(範例:下載 20.04 版本)

download2

選擇桌面版本: “ubuntu-20.04-desktop-amd64.iso” 並下載。

download3

系統要求

  • 至少 3-5 GB 的可用空間

  • 至少 512 MB RAM 和 1 GB 交換空間(推薦)

  • 支持 squashfs 的 Ubuntu 內核(自 Ubuntu 6.06 起出現)

  • QEMU / KVM,VirtualBox 或 VMware 進行測試(可選)

  • squashfs-tools:解壓縮並重新編譯 “live” 文件系統

  • genisoimage:以編譯新的 ISO 映像

安裝先決條件

  • 確保已安裝所需的工具

sudo apt install squashfs-tools genisoimage

獲取基本系統

http://releases.ubuntu.com 下載官方桌面映像,將其移動或複製到空目錄中。

mkdir ~/livecdtmp
mv ubuntu-18.04-desktop-amd64.iso ~/livecdtmp
cd ~/livecdtmp

obtain

1-1. 提取 .iso 內容

掛載桌面.iso

sudo mkdir /mnt
sudo mount -o loop ubuntu-18.04.4-desktop-amd64.iso /mnt

將 .iso 內容提取到 dir 'extract-cd'

mkdir extract-cd
sudo rsync --exclude=/casper/filesystem.squashfs -a /mnt/ extract-cd

.iso-contents

1-2. 解壓縮桌面系統

提取 SquashFS 文件系統

sudo unsquashfs /mnt/casper/filesystem.squashfs
sudo mv squashfs-root edit

desktop-system

1-3. 準備 chroot

/etc/resolv.conf 應該仍然是 /run/resolvconf/resolv.conf 的符號鏈接。

要啟用名稱解析,請暫時編輯該文件。如果您需要 chroot 中的網絡連接。

sudo cp /etc/resolv.conf edit/etc/

在較新的發行版中,可以通過僅綁定 /run 來避免此問題,這會將主機的 resolvconf 信息拉入 chroot:

sudo mount -o bind /run/ edit/run
  • 注意:建議您不要這樣做,除非您知道自己在做什麼! 根據配置的不同,可能還需要復制主機文件。

    sudo cp /etc/hosts edit/etc/

其餘步驟​​:

sudo mount --bind /dev/ edit/dev
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts

上面的命令會將主機系統的重要目錄掛載到 edit 目錄。
如果以後決定刪除編輯目錄,請確保先卸載所有目錄(請參見下面的“清除”一章)。
否則主機系統將無法使用,直到重新引導它。

為了避免區域設置問題並導入 GPG 密鑰。

export HOME=/root
export LC_ALL=C

chroot

客制化

Apt

2-1. 先決條件

在安裝或升級軟件包之前,需要運行

dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

prerequisites

2-2. 任務

按大小查看已安裝的軟件包

dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -nr | less

當要刪除軟件包時,請記住使用清除

apt purge package-name

tasks

2-3. 刪除軟件包

del

  1. apt purge firefox* gnome* language-pack-gnome* -y apt-get remove python* python3* -y

  2. apt purge alsa-utils aspell avahi-autoipd avahi-daemon adwaita-icon-theme bc dc bluez* -y apt purge colord* bolt branding-ubuntu brltty cups* desktop-file-utils command-not-found -y apt purge console-setup dictionaries-common linux-sound-base network* ppp* xdg-utils* -y

  3. apt purge espeak-ng-data gir1.2 gstreamer* x11* glib* language-pack-de* gsfonts -y apt purge language-pack-es* language-pack-fr* language-pack-it* language-pack-pt* -y apt purge language-pack-ru* language-pack-zh* language-selector-common* xbrlapi* -y

  4. apt purge gstreamer* iproute2 iputils* isc* ifupdown ubuntu-sounds vim* wget xfonts-utils -y apt purge ubuntu-wallpapers-bionic ubuntu-wallpapers ubiquity-slideshow-ubuntu -y apt purge gsettings-desktop-schemas gsettings-ubuntu-schemas fonts* Xorg* xdg-utils -y apt purge unattended-upgrades uno-libs3 rsync tcpdump zip xul-ext-ubufox xul-ext-ubufox -y

  5. apt purge xfonts-base tegaki-zinnia-japanese ure ureadahead update-notifier qpdf -y apt purge python3.6-minimal python3-cupshelpers python3 python printer-driver* -y apt purge dirmngr libproxy1-plugin-networkmanager:amd64 libpython-stdlib:amd64 -y

  6. apt purge python2.7-minimal ubuntu-release-upgrader-core system-config-printer -y apt purge libpython2.7-minimal:amd64 libpython2.7-stdlib:amd64 btrfs-progs casper -y apt purge qt5-gtk-platformtheme:amd64 qttranslations5-l10n netbase linux-firmware ibus -y

  7. apt purge cifs-utils cryptsetup dmeventd finalrd zeitgeist-core -y apt purge archdetect-deb btrfs-tools cryptsetup-bin dmraid example-content -y

  • apt autoremove -y :自動徹底移除套件

2-4. 定制限制

定制後,請確保沒有用戶的UID ==999。否則,由於沒有可用的初始用戶,映像將無法啟動。

(請參見 /usr/share/initramfs-tools/scripts/casper-bottom/25adduser, -> 'db_set passwd/user-uid 999' )。

例如,安裝後可能會發生這種情況 VirtualBox/GuestAdditions

在 chroot 中:

sudo chroot edit
awk -F: '$3 == 999' /etc/passwd
usermod -u 500 $hit

limits

2-5. 加入 Bios Update Tool

複製整個 tool 資料夾

sudo cp -rv ~/bios/* ~/livecdtmp/edit/etc
cd edit/etc
sudo chmod +x afulnx_64 amidelnx_64 amifldrv64.sys FWUpdLcl Go_Lnx.sh
sudo nano bash.bashrc
cd ../..
  • sudo cp -rv ~/bios/* ~/livecdtmp/edit/etc :複製家目錄下 bios 資料夾至 livecdtmp/edit/etc路徑下
  • cd edit/etc:進入指定資料夾。
  • sudo chmod +x afulnx_64 amidelnx_64 amifldrv64.sys FWUpdLcl Go_Lnx.sh:給予檔案權限。
  • sudo nano bash.bashrc:於此設定開機檔
  • cd ../..:回到家目錄。

高級定制

3-1. 重建 initrd

修改內核,初始化腳本或添加新的內核模塊後,您需要重建 initrd.gz 文件並將其替換為 casper 目錄。 將內核版本替換為 CD 可以啟動的版本 - 可以在 edit/lib/modules 中可找到

sudo chroot edit
mkinitramfs -o /initrd.gz 5.3.0-28-generic

從chroot監獄退出,然後將此文件移至extract-cd / casper:

exit
sudo mv edit/initrd.gz extract-cd/casper/

initrd

清理

由於 CD 上的空間有限,請確保刪除不再需要的任何臨時文件。一個典型的例子是下載的軟件包文件,可以使用以下方法清除該文件:

sudo chroot edit
apt clean

刪除臨時文件

rm -rf /tmp/* ~/.bash_history

警告:請參閱前面有關 resolv.conf 的註釋,不要再在 14.04 LTS 中甚至在 12.04 LTS 中將其刪除。 或名稱服務器設置

rm /var/lib/dbus/machine-id

如果安裝了軟件,請確保運行

rm /sbin/initctl

dpkg-divert --rename --remove /sbin/initctl

在chroot環境中。

現在卸載所有特殊文件系統並退出 chroot

umount /proc || umount -lf /proc umount /sys umount /dev/pts umount /dev exit

警告:如果/ dev無法卸載,請不要強行使用它,否則您將遇到主要問題。 相反,請確保edit目錄中沒有進程正在運行,然後從chroot中重試'umount / dev'命令。如果仍然失敗,則必須重新啟動計算機才能擺脫它。

製作 CD 映像

image

4-1. 組裝文件系統

安裝時先不下載更新,等之後安裝完畢後再依據需求做更新動作。

assembling

4-2. 測試 ISO

安裝時先不下載更新,等之後安裝完畢後再依據需求做更新動作。

testing

4-3. 將 ISO 刻錄到 USB

testing

參考文件