Add support patch to ESXi 6.0

Goal

目標很簡單, 我只是想要在桌電裝一個 ESXi6.0 來玩玩, 遇到了一個硬碟找不到的問題, 幸好學弟有先寫了篇文章提醒, 這邊紀錄一下打 patch 的經過

Environment

  • G1 SNIPER Z97
  • E3-1231v3
  • 4GB Memory
  • WDC WD10EZEX Blue
  • Intel NIC

Download ESXi 6.0 iso

官方網站下載, 要申請帳號密碼 , 若嫌懶的話, 可以看一下 Reference 第一個連結

Download Sata-xahci

Download ESXi-Customizer

Use ESXi-Customizer

設定如下圖所示

  • 第一格填下載下來的 ESXi 6.0 iso 位置
  • 第二格填下載下來的 sata-xahci-1.30.1, 記得要更改檔案格式為*.zip
  • 第三格填客制化後的 ESXi image location

點選 Run 後, 會進行 patch 確認, 這邊就是進行 sata-xahci的確認

跑完後, 你可以再你填的第三格位置裡找到一個名為 ESXi-5.x-Custom.iso 的檔案

Use UNetbootin

找一個適當大小的 usb, 將 ESXi-5.x-Custom.iso 放進去後就大功告成了

Install ESXi 6.0

請參考 STEP-BY-STEP 教你如何安裝與升級 ESXI 6.0 / 5.5 / 5.1 / 5.0 伺服器

唯一畫面會有所不同的是在 “Select a Disk to Install or Upgrade” 會多出一個原先 ESXi 沒支援的 Device

Reference

常用git指令

  • 丟棄 non-commit code
    • git reset --hard HEAD
  • 抓取 upstream source
    1. git remote add upstream https://github.com/xxx/xxx
    2. git fetch upstream
  • 移除 local branch [trash]
    • git branch -d trash
  • 移除 remote branch [origin/trash]
    • git push origin :trash
    • git branch -rd origin/trash
  • 強制移動 branch 指向某個 commit [HEAD -> HEAD~3] #level rampup3
    • git branch -f master HEAD~3
  • local branch 退回至上一個 commit [HEAD -> HEAD~1] #level rampup4
    • git reset HEAD~1
  • remote branch 退回至上一個 commit 並將狀態分享出來 #level rampup4
    • git revert HEAD
  • 複製多個 commit 至 HEAD 底下 [C2 C4] #level move1
    • git cherry-pick C2 C4
  • 重新排序或忽略某些 commit [HEAD <-> HEAD~4] #level move2
    • git rebase -i HEAD~4 --aboveall
  • 對某個 hash 上 tag [v1 C3] #level miexd4
    • git tag v1 C3
  • branch rebase [parent children] #level advanced1
    1. git rebase master feature1
    2. git rebase feature1 feature2
    3. git rebase feature2 master
  • 選擇第二個 parent commit #level advanced2
    • git checkout HEAD^2
  • 解決 diverged history, 使用 rebase 整合 origin/master 和 master #level remote7, remoteAdvanced2
    • git pull --rebased
  • 參考 remote branch 來 checkout 一個新的 branch #level remoteAdvanced3
    • git checkout -b new-branch origin/master
    • git pull
  • 設定 remote tracking 來 push 至 remote branch
    • git branch -u origin/master new-branch
    • git push
  • push 至不存在 remote branch
    • git push origin master:new-branch
  • 抓下 remote branch #level remoteAdvanced6
    • git fetch origin branch-name
  • About git pull
    • git pull origin foo 等同於 git fetch origin foo; git merge origin/foo
    • git pull origin bar~1:bugFix 等同於 git fetch origin bar~1:bugFix; git merge bugFix
  • 修改已經 commit 的 comment
    • git commit --amend
    • git rebase --continue
  • rebase 發生錯誤, 修復後要繼續進行修改
    • git rebase --continue

Reference

Data Link Layer

transmission error detection

  • checksum
  • CRC

Reliable Data Transfer

  • ARQ (Automatic Repeat reQuest)

協議

  • Go back N
  • SAW (Start and Wait)
  • Sliding Windows
  • Selective Repeat
  • Piggybacking
  • Selective Acknowledgement

PPP (Point-to-Point Protocol)

  • PPP 是基於 HDLC (High-Level DataLink Control) 設計, 主要用在 V.35 或 MODEM
  • ADSL 的 PPPoE 及 VPN 的 PPTP 皆採用 PPP 協議封裝

CRC

  • CRC-CCITT (x^16 + x^12 + x^5 + 1)
  • 可檢測出所有隨機雙奇數位錯誤
  • 可檢測出長度小於 16 位的錯誤達 100%
  • 可檢測出長度大於 17 位的錯誤達 99.9969%
  • 可檢測出長度大於 18 位的錯誤達 99.9985%