簡易反轉 PDF 顏色和把 PDF 轉成圖檔的方法

Imagemagick-logo

這篇要用的工具是 ImageMagick (wiki)

imagemagick 是一套不管是在 Linux, FreeBSD, Windows 或 Mac OS X 上都很容易取得的工具,其主要功能是各種圖檔的檢視、編輯、轉換

FreeBSD 安裝: $ sudo pkg install ImageMagick
Debian / Ubuntu based GNU/Linux 安裝: $ sudo apt-get install imagemagick
CentOS / Fedora based GNU/Linux 安裝: $ sudo yum install ImageMagick
Mac OS X 使用 MacPorts 安裝: $ sudo port install ImageMagick
Mac OS X 使用 Homebrew 安裝: $ brew install imagemagick

嫌版本太舊、或是上面沒提到、還是沒有套件管理功能的作業系統請自己從這邊找:http://imagemagick.org/script/binary-releases.php

安裝完 ImageMagick 後會有一個 convert 的 command 可以用

閱讀全文

在 Linux 上快速建立 空白檔案 / 大檔案 的方法

建立 swap 置換空間的或是跑一些測試時候有時會需要建立一個超大檔案(這邊指的是空白檔案),最常用的方法應該是 dd,例如從 /dev/zero 讀空白資料出來寫到我們的目的地檔案 ./dd_1G,一次寫入 1MB 的資料,總共寫入 1024 塊,就可以產生一個 1GB 的檔案:

$ time dd if=/dev/zero of=./dd_1G bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 5.92408 s, 181 MB/s

real 0m6.052s
user 0m0.000s
sys 0m0.660s

在我的電腦上大概花了6秒鐘左右,檔案大的話花的時間會更多,例如 10G 或 100G 之類的,以空檔案來說,其實 dd 有更快的做法,直接用 seek 跳到指定的位置:

$ time dd of=./dd_1G_fast bs=1 count=0 seek=1G
0+0 records in
0+0 records out
0 bytes (0 B) copied, 3.4469e-05 s, 0.0 kB/s

real 0m0.001s
user 0m0.000s
sys 0m0.001s

0.001 秒 … 可以想像成把檔案頭尾的起點終點設定完就結束了,中間的內容跳過不管他,所以會很快,不過這樣產生的檔案不見得什麼工具都接受,要拿來當 swap 的話就沒辦法了,會出現:

$ sudo swapon /swap
swapon: /swap: skipping - it appears to have holes.

這邊可以參考 swapon 的 manpage:

NOTES
You should not use swapon on a file with holes. Swap over NFS may not work.

除了 dd,我們可以考慮使用 – fallocate / truncate

$ time fallocate -l 1G fallocate_1G
real 0m0.002s
user 0m0.000s
sys 0m0.002s

$ time truncate -s 1G truncate_1G
real 0m0.001s
user 0m0.000s
sys 0m0.001s

truncate 產生出來的檔案拿來給 swap 使用也會遇到上述 swap 不接受的問題,fallocate 就沒有這個問題,只是可能不適用於所有檔案系統,已知支援:btrfs, ext4, ocfs2 及 xfs,如果跑在 ext3 上面會出現:

fallocate: /swap: fallocate failed: Operation not supported

如果不考慮速度的還有一個工具 – xfs_mkfile,Debian / Ubuntu based GNU/Linux 可以透過 apt-get install xfsprogs 來安裝,雖然他是 xfs 的 utility 但也可以在其他檔案系統上面使用:

$ time xfs_mkfile 1024m xfs_mkfile_1G
real 0m10.810s
user 0m0.000s
sys 0m0.110s

比較一下產出的檔案有什麼差異?光看大小跟 checksum 看起來是沒差~ 只是使用起來可能會有上面提到的差異

peter ~/test $ ls -l
total 4194320
-rw------- 1 peter peter 1073741824 Jan 20 17:13 dd_1G
-rw------- 1 peter peter 1073741824 Jan 20 17:13 dd_1G_2
-rw------- 1 peter peter 1073741824 Jan 20 17:16 dd_1G_fast
-rw------- 1 peter peter 1073741824 Jan 20 17:13 fallocate_1G
-rw------- 1 peter peter 1073741824 Jan 20 17:13 truncate_1G
-rw------- 1 peter peter 1073741824 Jan 20 17:14 xfs_mkfile_1G

peter ~/test $ md5sum *
cd573cfaace07e7949bc0c46028904ff dd_1G
cd573cfaace07e7949bc0c46028904ff dd_1G_2
cd573cfaace07e7949bc0c46028904ff dd_1G_fast
cd573cfaace07e7949bc0c46028904ff fallocate_1G
cd573cfaace07e7949bc0c46028904ff truncate_1G
cd573cfaace07e7949bc0c46028904ff xfs_mkfile_1G

這時候要用 du -k --apparent-size & du -k 才會看得出來,有興趣的人可以試試看,結論是要產生 swap file 的話用 fallocate 會是比較快速又實際的方法

VirtualBox (v5.0) 建立虛擬機筆記

關於 VirtualBox 的安裝流程可以參考這篇:
https://www.peterdavehello.org/2016/01/install-virtualbox-5-0-on-windows-10-notes/

所在的 Host 環境是 Windows 10,使用的 VirtualBox 版本是 5.0.12、中文介面,但和 4.3 版流程以及操作上並沒有太大差異,這邊是純流程紀錄,給新手做參考用。

打開 VirtualBox 程式主畫面,點選左邊”新增”按鈕。
virtualbox_5.0_create_vm

接下來要設定虛擬機的名稱以及對應系統版本、架構,名稱如果輸入的是某套作業系統的名稱,VirtualBox可能會很聰明貼新的幫你選擇對應作業系統。注意這邊底下有一個專家模式,可以一次把所有基本設定完成,這邊以預設的引導模式為範例。

virtualbox_5.0_create_vm_name_os

我輸入 FreeBSD 10.2 ,下面已經自動幫我選好了,如果你取的名稱沒辦法被關聯到對應的作業系統,請自行選擇!VirtualBox 支援 Windows 、 Solaris 、BSD、OS/2、MAC OS X等系統。

virtualbox_5.0_create_vm_name_os_2

下一步要選擇記憶體大小,也就是你要分配多少記憶體資源給這台虛擬主機使用,可以直接輸入數字、也可以拖曳箭頭左右來選擇,底下還有貼心的顏色提醒,綠色表是安全範圍、橘色表示記憶體有點吃緊,紅色就是危險(造成外部實體機器記憶體嚴重不足、可能會當機)了!分配越多記憶體給虛擬機,則實際外部運作的系統記憶體就會剩得越少,VirtualBox會按照你選的系統給一個基本建議值,通常我會按照系統的實際硬體以及同時要啟動的虛擬機數量做調整,這邊32位元的FreeBSD預設只給 128MB
virtualbox_5.0_create_vm_set_mem_size

閱讀全文

在 Windows 10 上安裝 VirtualBox v5.0 筆記

VirtualBox 在 Windows 10 的安裝流程紀錄,沒什麼特別難或特別要注意的地方,就只是一個流程紀錄。還不認識 VirtualBox 的畫可以 Google 搜尋一下虛擬機、VirtualBox 的相關資訊,VirtualBox 是一套免費、開放原始碼的自由軟體虛擬化軟體,可以幫我們模擬一套電腦硬體,讓使用者在上面做各式的練習、開發(例如安裝FreeBSD, Linux),或是硬體資源管理。

FreeBSD 、 Linux 建議可以透過系統的套件庫來安裝,不過結至目前為止,FreeBSD 的 ports/pkg 都還停留在 4.3.34 版 , Ubuntu 則是要 Wily (15.10)、 xenial (16.04) 才有 v5.0 的 VirtualBox、其他版本則需要從 VirtualBox 官網下載安裝。

VirtualBox 官網: https://www.virtualbox.org/

點選 Download VirtualBox 5.0

virtualbox.org_v5.0

VirtualBox 5.0.12 for Windows hosts x86/amd64

virtualbox.org_download virtualbox.org_download_finished下載後執行安裝程式:

virtualbox.5.0_install

設定要安裝的元件有哪些,這部分不用特別調整,下一步即可:

virtualbox.5.0_install_2

閱讀全文