縮小 Ubuntu 的 Hyper-V VM 動態 VHD 檔案

之前有紀錄過,微軟有提供「Optimize-VHD」這個 Hyper-V 的 PowerShell cmdlet(官方文件),可以用來透過釋出沒有用到的空間來最佳化動態擴充的 VHDX 的大小。

而當最近當發現自己用 Hyper-V 架設的 GitLab 的 VHDX 檔案所占用的空間越來越大、遠遠超過實際的內容(實際檔案只有不到 100GB,但是檔案卻有 640GB…),想透過「Optimize-VHD」來縮小檔案的時候,卻發現它幾乎沒有用!?

後來查了一下,才發現微軟的 Optimize-VHD 主要應該還是以對應 Windows 的 NTFS 為主,對於 Linux 的檔案系統看來是沒辦法很好地去偵測檔案裡的那些區塊並沒有實際被用到、所以基本上無法有效地縮小檔案。

閱讀更多»

使用 rsync 備份透過 Docker 架設的 WordPress

這篇勉強算是之前《自行透過 Docker 建立 WordPress 網站》的後續,不過主要應該還是在記錄自己這邊稍微玩一下 rsync 這個 Linux 下的備份工具(維基百科)的紀錄了。

首先,Heresy 這邊是要在跑 WordPress 的機器(以下簡稱 WP)上,另外跑一個 rsync daemon 來讓另一台備份用的電腦(以下簡稱 Backupper)連進來、把資料備份到 Backupper上。

閱讀更多»

Ubuntu 的 Docker 無法使用的問題

前幾天,手邊幾台 Ubuntu 20.04 的電腦似乎是在 apt 更新完後,就開始出現 docker 容器無法正確執行的問題了?

錯誤訊息基本上是:

OCI runtime create failed: container_linux.go:348: 
starting container process caused: error adding seccomp filter rule for syscall clone3: permission denied: unknown

這個問題基本上應該不是個案,在網路上也可以找到相關的討論。

閱讀更多»

在 WSL 存取可移除儲存裝置(記憶卡、隨身碟)

微軟針對 Windows 10 推出的 Windows Subsystem for Linux(WSL)在 Heresy 來看,對於以 Windows 為主環境、但是卻偶爾需要使用 Linux 的人來說,算是相當方便的功能。

不過,他雖然預設就可以在「/mnt/c」這樣的路徑下,存取 Windows 的磁碟機,算是相當方便;但是對於可移除的儲存裝置(例如外接硬碟、隨身碟、記憶卡等等),他卻不會自動掛載(mount),要讀取算是略微麻煩…

而如果真的想要在 WSL 環境內存取這類的可移除的儲存裝置的話,其實也是可以透過自行掛載來完成的。

閱讀更多»

WSL 之後的功能:支援圖形介面

微軟在 Windows 10 提供的「Windows Subsystem for Linux」後,對於 Heresy 這種以 Windows 為主要環境,但是又得碰到 Linux 環境的人來說,真的是非常方便的一件事。

而在 Windows 10 2004 的時候,微軟又大幅更新了 WSL、變成以 VM 為基礎的 WSL2,讓 WSL 的相容性再進一步提高、甚至也可以執行 Docker 了~

微軟也有打算繼續發展這套系統,之前也提到過以後 WSL 將會提供 GPU 的支援

而前幾天,微軟也發表了《What’s new in the Windows Subsystem for Linux – September 2020》,彙整了一些近期、未來的 WSL 願景。

閱讀更多»

WSL2 未來的 GPU 支援

之前在《Windows Subsystem for Linux 2 + Docker》一文,大概介紹了微軟在 Windows 10 2004 推出的 WSL2 的功能,算是介紹了 WSL 已經可以用的功能(不過要切到 Windows Insider)。

而這篇,則是來簡單紀錄一下 WSL2 還在開發,以後才能用的功能了~

在 Heresy 來看,WSL2 已經讓 Heresy 在跨平台作業時,省了很多功夫了。
不過,以現在來看,他還缺少了一個很重要的功能,那就是實際硬體的存取;尤其是 GPU 的部分,基本上現行的 WSL1、WSL2 都是無能為力的。

但是,現在深度學習的東西,基本上大多是在 Linux 上開發、運作,Windows 雖然不是說不能跑,但是大多相對麻煩。也因此,如果可以透過 WSL2 來跑相關的套件,其實是會很方便的!

閱讀更多»

Windows Subsystem for Linux 2 + Docker

在 2016 年,微軟發表了後來被稱為「WSL」(Windows Subsystem for Linux )的 Ubuntu on Windows 10,讓 Windows 10 的使用者,可以不需要透過虛擬機器或容器,就可以直接執行 Linux 的原生程式!

當然,在使用上其實也還是有不少的限制,不過對於 Heresy 這類以 Windows 為主力、卻需要開發部分 Linux 環境的程式的人來說,其實算是相當實用的了!

Heresy 之前也有寫過一些簡單的紀錄:

閱讀更多»

PHP 奇怪的 session_start 失敗問題:UTF-8 BOM

最近在弄新的系統的時候,同事在 Windows 上寫的 PHP 程式在要搬到 PHP Apache Docker 的時候,出現了一個奇怪的問題;那就是它會出現下面的錯誤:

Warning: session_start(): Cannot start session when headers already sent in 
XXX.php on line X

這個錯誤還算滿明確的,基本上就是在呼叫 session_start() 這個 PHP 的函式之前,就先粗出了其他的內容所造成的。

但是仔細檢查過檔案後,卻發現其實根本沒有輸出任何東西啊?

閱讀更多»