-
Notifications
You must be signed in to change notification settings - Fork 0
Bios_Update_Tool
ZZZZ ZZZZZ
- Ubuntu 官網 : https://www.ubuntu-tw.org/modules/tinyd0/
於 “下載選項” 下方 “至此瀏覽所有版本及檔案” 點擊,如下圖。
選擇版本。(範例:下載 20.04 版本)
選擇桌面版本: “ubuntu-20.04-desktop-amd64.iso” 並下載。
-
至少 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
掛載桌面.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
提取 SquashFS 文件系統
sudo unsquashfs /mnt/casper/filesystem.squashfs
sudo mv squashfs-root edit
/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
在安裝或升級軟件包之前,需要運行
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
按大小查看已安裝的軟件包
dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -nr | less
當要刪除軟件包時,請記住使用清除
apt purge package-name
-
apt purge firefox* gnome* language-pack-gnome* -y apt-get remove python* python3* -y
-
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
-
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
-
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
-
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
-
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
-
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
:自動徹底移除套件
定制後,請確保沒有用戶的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
複製整個 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 ../..
:回到家目錄。
修改內核,初始化腳本或添加新的內核模塊後,您需要重建 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/
由於 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'命令。如果仍然失敗,則必須重新啟動計算機才能擺脫它。
安裝時先不下載更新,等之後安裝完畢後再依據需求做更新動作。
安裝時先不下載更新,等之後安裝完畢後再依據需求做更新動作。