Archive for the 'coLinux' Category
txt2tags 輸出 LaTeX 檔測試
之前把舊筆記整理了一下,發布了一篇Windows 下的 coLinux 環境設置。在還不會使用 LaTeX 前都是純文字格式的筆記,剛好前陣子也試用了一下 txt2tags 覺得還不錯,因此前一篇文章其實是用 txt2tags 轉成 HTML 後,再透過以前寫的小程式發布到 blog 上。
Windows 下的 coLinux 環境設置
前言
coLinux 的全名是 Cooperative Linux,介紹到此結束 (爆)。這篇只是我的記錄,所以不想打太多字啦,簡單的說就是可以把 Linux 當作一般的應用程式來執行,所以是直接執行 Linux,額外的負擔比較少 (要執行 VM 或 cygwin 也是需要額外資源的)。
雖然我自己大部份時間是使用 Linux 作業,但有時候就是很無奈,因為種種原因只能在 Windows 上操作,不過嘗過 Linux 甜頭的人實在是很難適應 Windows 那樣貧乏的環境;有時則是因為臨時需要 Linux 的實驗環境,但主要工作都在 Windows 上,很難完全轉移。我相信這類情況不是只有我遇到,因此就出現了各種解決方案。
過去最常見的方式是執行 Virtual Machine,如 VMWare 或 Virtual PC 等等,或者是透過 cygwin 之類的模擬環境,還有我這次想介紹的 coLinux。這些工具各有優劣,我只就我個人的使用經驗來談:Virtual Machine 太耗資源,cygwin 環境雖然很接近,但有些跟終端機相關的設定又不太一樣,用起來很不順手。而 coLinux 跑的是 User-mode Linux,環境上最接近真正的 Linux (根本就是),大部份操作跟真正的 Linux 環境下是一樣的,設定檔也可以直接搬過來用。跟所以自從我知道有這種好東西後,就把其他工具丟掉,專心試用 coLinux。
在 coLinux 裡安裝 icc
因為我的 colinux 用的是 debian image,所以安裝時得先裝上 rpm 套件
然後再修改一下安裝檔 install_cc.sh
— ../install_cc.sh 2005-12-08 03:58:24.000000000 +0800
+++ install_cc.sh 2006-08-17 16:56:20.000000000 +0800
@@ -1311,13 +1311,8 @@
else
IA=”$(uname -m)”
fi
- KERNEL=”$(uname -r | cut -d’.’ -f-3)”
- #GLIBC=”$(rpm -qf `ls -1 /lib/libc.* | sed ‘1!d’` | cut -d’-’ -f2)”
- if [ "$RPM_NOT_FOUND" = 0 ] ; then
- GLIBC=”$(rpm -qa | egrep -e ‘glibc-2\.2\.4′ -e ‘glibc-2\.2\.5′ -e ‘glibc-2\.2\.93′ -e ‘glibc-2\.3′ -e ‘glibc-2\.4′ 2> /dev/null )”
- else
+ KERNEL=”$(uname -r | cut -d’-’ -f1)”
GLIBC=”$(ls /lib/libc-* | grep -e ‘[.]so’ | sed s@’\(.*\)\(\.so.*\)’@'\1′@g)”
- fi
}#
這樣就可以順利安裝了
colinux 0.6.4-2
剛剛逛了一下 colinux 的 wiki 才發現已經有新版了
而首頁上卻完全沒更新XD
ChangeLog [Link]
其中我比較關心的是 cofs 的改進,因為 xp 的分享一直搞不懂
在 colinux 裡開 samba 又會受限於 image 大小…這是我最後的希望了XD
cofs and cobd:
* Allow relative paths in XML (except for \Device & \DosDevices)
* Remove trailing backslashes from cofs paths
* Improve console output of mapped devices & paths
* Case insensitive scans for duplicate paths
cofs:
* Fix BSOD for long non-ansi names in directory
(Thanks to Kensuke Matsuzaki)
* Fix for handling longer basenames (from 127 to 255)
希望快點穩定阿….
colinux 的備份
這幾天在試試備份 coLinux 的方法
最簡單的方式當然是直接壓縮 disk image 了
不過壓來壓去,檔案總是很大….
Filesystem Size Used Avail Use% Mounted on
/dev/cobd0 1.5G 759M 677M 53% /
/dev/cobd1 1.5G 316M 1.1G 22% /home
在 WindowsXP 底下用 7-zip 壓縮的結果
2006/04/25 上午 09:27 491,532,897 fs_home_20060425.7z
2006/04/25 上午 10:49 468,579,178 fs_root_20060425.7z
這樣子感覺好像看不出壓縮保存的效益,7-zip 有那麼遜嗎…
後來想想,該不會要做 dfrag 吧?雖說在 Linux 底下很少聽到需要做 dfrag
但的確還是有這樣的程式,只是我接觸 Linux 以來還沒機會用到,就趁這次來玩玩看吧
問了一下 google 大神,有人提到用 tar 包起來再還原就有 defrag 的效果了
既然不用特別裝程式,那就來試試看吧
我另外弄了一個乾淨的 disk image,重跑過 mkfs.ext3,mount 在 /mnt/backup
然後寫了一個簡單的 script 把該備份的資料都移到新的 disk image 裡
基本的指令大概是這樣
tar cf - dir | tar xf - -C /mnt/backup
這是備份或轉移系統的基本指令,有做過的人應該不難
其中有幾個系統目錄要跳過,不然整個 Windows 會直接死當…
為了還原方便,該有的目錄結構也要建立好,這些東西我在 script 裡都處理了
(可能沒有很完整,但目前能用就好)
轉換的過程很快,只是單純的 copy 動作而已,壓縮的結果如下
2006/04/25 下午 04:43 154,420,656 fs_home_20060425.7z
2006/04/25 下午 04:10 198,657,490 fs_root_20060425.7z
2006/04/25 下午 03:49 239,735,856 fs_root_20060425.bz2
壓縮後的檔案大小還不到之前的一半
大概因為我常常在新增/刪除檔案吧 效果還蠻明顯的
如果使用的時間沒那麼久,出來的結果大概不會差很多
還原時只要解壓縮,蓋掉原本的 root image 後重新啟動 coLinux 就可以了
壓縮的時候我還測了一下 bzip2 跟 7-zip 哪一個比較好用
對一個空的 disk image 來講,我下載 [Link]
一個 1.5GB 的 disk image 以 bzip2 壓縮後不到 10kB
不過我解壓縮後重新用 7-zip 壓縮,竟然超過 200 kB
但是對於有資料的 disk image,7-zip 的壓縮結果似乎好一點
所以我後來就用 7-zip 壓了
如果有人需要這個 script 的話…(我多做了一些判斷,所以看起來有點長)
#!/bin/bash
# vim: ts=2 sw=2
Mkdir=`which mkdir`
root=’/’
[ "$1" = "" ] || root=$1
list=”
exclude=’cdrom floppy home initrd lost+found mnt proc sys tmp’
exclude_match=”
backup=’/mnt/backup’
[ -d $backup ] || $Mkdir $backup
echo
echo ”backup $root”
echo
cd $root
for d in *
do
add=1
for e in $exclude
do
if [ "$d" = "$e" ]; then
add=0
exclude_match=$exclude_match’ ’$d
break
fi
done
[ $add = '1' ] && list=$list” ”$d
done
for d in $list
do
echo -n ”archiving $d…”
tar cf - $d | tar xf - -C $backup
if [ $? = '0' ]; then
echo ’done’
else
echo ’failed’
fi
done
echo
echo ’keep directory structure’
echo
cd $backup
for d in $exclude_match
do
[ -d $d ] || $Mkdir $d
done
Comments(0)