用 VirtualBox 開啟實體硬碟中的 Windows

如果用 Linux 當開發環境,常常會碰到一個問題:因為一般企業使用的管理系統沒有 Linux 版本,導致有些操作必須使用 Windows 來完成。對於大部分的應用來說,在 VirtualBox 內安裝 Windows 可能就能解決,問題是,通常 VirtualBox 的 Windows 都是由工程師自行安裝,不是正式授權;再來,在 VirtualBox 內安裝 Windows,意味加上原來預設的 Windows,硬碟內要有兩套 Windows,這真的讓人很難接受,一套已經很佔空間了,居然還要兩套?

於是我有個想法,要是 VirtualBox 可以用實體空間來開機的話,就能直接在 VirtualBox 執行原本配置的系統,如此一來,可以用 IT 已經安裝好的授權軟體不說,也省掉了後續資料交換的麻煩。Google 後發現還真的有這種應用,當然馬上試試看。

列出分區

首先因為是使用硬碟的資料,我們需要確認 Windows 安裝在哪個 Partition,使用 fdisk -l 列出所有 Partition 的狀態

ken:~$ sudo fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 119.2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 664C31C9-8F24-4D89-B16A-426FDCDBB716
Device             Start       End   Sectors  Size Type
/dev/nvme0n1p1      2048    534527    532480  260M EFI System
/dev/nvme0n1p2    534528    567295     32768   16M Microsoft reserved
/dev/nvme0n1p3    567296 111706111 111138816   53G Microsoft basic data
/dev/nvme0n1p4 248020992 250068991   2048000 1000M Windows recovery environment
/dev/nvme0n1p5 111706112 112504831    798720  390M Linux filesystem
/dev/nvme0n1p6 112504832 144502783  31997952 15.3G Linux swap
/dev/nvme0n1p7 144502784 248020991 103518208 49.4G Linux filesystem

可以看到 Windows 的資料位於 dev/nvme0n1

創建 VMDK 檔

接著,為了讓 VirtualBox 可以從實體硬碟開機,我們需要建立 vmdk 檔來表示實體硬碟。使用 VirtualBox 指令

ken:~$ sudo VBoxManage internalcommands createrawvmdk -filename ~/vmdk/windows_10.vmdk -rawdisk /dev/nvme0n1p1
RAW host disk access VMDK file /home/ken/vmdk/windows_10.vmdk created successfully.

創建虛擬機

再來,開啟 VirtualBox,用剛剛建好的 vmdk 檔來開機

這邊要注意,雖然我們的系統安裝在 SSD,使用的是 NVMe,但 VirtualBox 的 NVMe 似乎有問題,因此這邊選擇用 SATA

前面看到 nvme0n1 開頭是 EFI,因此記得要 Enable EFI

啟動虛擬機

設定都完成後,只要開啟 Virtual Machine,應該能看到 GRUB 的畫面,選擇 Windows Boot Manager,進入 Windows,完工。

小結

使用 VirtualBox 開啟 Windows 後,就能省掉很多資料交換的麻煩,但畢竟是 Virtual Machine,使用上不比 Native,可能會有些狀況;另外,我電腦的 Windows 跟 Ubuntu 開機都安裝在 SSD,要用 EFI 從 dev/nvme0n1 開機,但如果可以的話,最好將兩個系統切開,免得不小心開到 Ubuntu,造成資料損壞。

Reference

Read more

Weekly Issue 第 10 期:AI 機器人正造成網站負擔

隨著 LLM 變成日常的一部分,它們也在改變原有的網路生態。Fastly 的報告顯示,AI 機器人每分鐘可對網站發起高達 39K 次請求,日後造訪網站的,可能大多是機器人,而不是真人。 🗞️ 熱門新聞 Fastly warns AI bots can hit sites 39K times per minute 繼上次 Codeberg 的新聞後,Fastly 出報告指出 AI 機器人正造成網站營運負擔。 大多觀點延續幾個月來的趨勢:「網站負載增長主要並非來自人類訪客,而是代表聊天機器人公司運作的自動爬蟲與抓取程式。 」值得注意的是,AI Fetcher 的數量也在增加中,我猜這多少暗示了用戶搜尋資料的行為正在變化。 Meta 占了所有 AI 流量的 52% 🙄 ,相對下 Anthropic 只佔 3.76%

By Ken Chen

Weekly Issue 第 9 期:Ghost 發布 6.0 版本

Ghost Release 新版了!距離上次大版號更新,已經過了 3 年多,這幾年來,創作者經濟變化得很快,Ghost 也嘗試讓創作者更容易經營自己的內容。 我會等 6.0 發布一陣子,穩定下來後才會更新。很期待他們下一步會是什麼。 🗞️ 熱門新聞 Ghost 6.0 Ghost Release 6.0。 兩個重量級更新:支援 ActivityPub,讓 Ghost 可以 Leverage 社群媒體分發渠道;以及內建 Analytics,支援流量分析。這剛好就是兩個我最想要的功能,Great Work。 常說經營內容的痛點在,不知道如何發佈內容,不知道訪客從哪來。當然這都可以用工具協助,例如設定 GA、或者使用 Postiz 等來經營社群,可是我覺得一個好的平台應該要替創作者處理掉這些事,Ghost

By Ken Chen

Weekly Issue 第 8 期:數位時代的遷徙自由

以前在開發內容平台產品時,常常想,如果有天我們的使用者要離開平台,他們擁有自由嗎?在現代,數位創作者有點像是佃農,替平台生產內容,可是因為數位落差,他們沒有移動的能力。 隨著時代進步,法規應該要與時俱進,這期選了數位部的公告草案,告訴我們科技與制度可以如何相輔相成。 另外,從本期開始,加入了目錄大綱,希望讓讀者閱讀時能更容易在不同議題間切換。 🗞️ 熱門新聞 社交資料可攜權與互通性 在唐鳳那看到這則消息,最近衛城出版編輯的帳號被無預警停權,引發討論,我自己也常常焦慮,當使用這些便利的平台服務時,我們是不是交出一些沒意識到的權利? 身為個人,可行的策略是,在發布內容到平台前,先保留一份在自己手中,但這其中的不平等顯而易見。《數位選擇法案》讓我理解到,創作者有機會在一個更好更平等的環境下創作。 我希望台灣也能有這樣的一天。 I gave the AI arms and legs – then it rejected me 在 HN 上看到的新聞,有名開發者發現自己的函式庫被用在 Claude

By Ken Chen

Weekly Issue 第 7 期:從 GitHub Spark 看 Prompt 工程

近期開始有人建議用 Context Engineering 來取代 Prompt Engineering,的確相較於 Prompt,Context 是更精確的用詞。前一期也提到,當 Duolingo 的 CEO 被問到 AI 是否只是模型套皮時,他也說模型一定有影響,但更多是關乎你的 Context。 那麼,業界現在是如何看待 Prompt 的呢?Github Spark 跟 V0 的例子或許能提供一些參考。 🗞️ 熱門新聞 Using GitHub Spark to reverse engineer GitHub Spark GitHub Spark 最近推出公開預覽,讓你可以用 prompt 直接開發應用。 作者用逆向工程,找出 Spark 的 system

By Ken Chen