2009年12月30日 星期三

轉貼 Windows7 + wubi

[技巧] 用WuBi.exe在Win7下硬盘安装UBunTu 9.04
http://bbs.pcbeta.com/thread-475058-1-3.html

win7 wubi安装ubuntu9.10出错信息解决办法(拷贝自他人空间)
http://hi.baidu.com/chin%D0%A1%D7%D3/blog/item/b6be8ab26ddda0add8335a90.html


2009年12月17日 星期四

CD iso 開機 文摘

MobaLiveCD 開機光碟、Live CD模擬器
http://briian.com/?p=6512

萬用可開機工具光碟 - Ultimate Boot CD (UBCD)
http://www.ultimatebootcd.com/download.html

QEMU
http://amanda_hoic.mysinablog.com/index.php?op=ViewArticle&articleId=1343462

把Ubuntu的ISO檔放到2.5吋外接硬碟,然後利用Grub4DOS開機,並成功安裝到桌機的硬碟裡面。
參考的是這一篇http://hi.baidu.com/sxpspace/blog/item/aa29f5f351acf857352acc38.html
重要的是menu.lst裡的這一段:
title Install ubuntu
map (hd0,0)/ubuntu.iso (hd32)
map --hook
root (hd0,0)
kernel (hd32)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso
initrd (hd32)/casper/initrd.gz

==========================
http://phorum.study-area.org/index.php?topic=56636.0
RonLee
之前在官方的教學文件裡看到這句話:http://grub4dos.sourceforge.net/wiki/index.php/Grub4dos_tutorial
CDROM emulation is not implemented.
(也不曉得算不算官方啦,因為看起來像是個很正式的介紹Grub4DOS的網站。 )
一開始看了這句話一度以為真的沒有我要的功能(也有可能我會錯意)。後來不死心又google了一陣子,
終於在上面那篇文章裡找到方法。
一篇好的教學文章真的抵的過千萬篇啊~~
======================

grub4dos 从硬盘引导安装 ubuntu (不解ISO包也可安装)
http://hi.baidu.com/sxpspace/blog/item/aa29f5f351acf857352acc38.html
从硬盘安装 ubuntu 根本不要这么多文件,之前放这么多文件在根目录也是按网络上的方法来做的。用 grldr, menu.lst, ISO 文件,vmlinuz 文件,initrd.gz 文件,以及修改 boot.ini 就可以用 grub4dos 来引导安装 ubuntu 了。假设上面这些文件都放在 C 盘根目录,menu.lst 可以这样写:

title Install ubuntu
root (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu.iso
initrd /initrd.gz
boot


当然,可以在不解出vmlinuz 文件,initrd.gz 文件的情况下,grub4dos 也能成功从硬盘引导 ubuntu 安装。这里 C 盘根目录有 grldr, menu.lst, ISO 文件,这时的 menu.lst 可以写作:

title Install ubuntu
map (hd0,0)/ubuntu.iso (hd32)
map --hook
root (hd0,0)
kernel (hd32)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso
initrd (hd32)/casper/initrd.gz
boot

这里用 map 指令将 ISO 文件模拟为硬盘/光盘,在模拟磁盘中读取vmlinuz 文件,initrd.gz 文件。当控制权交给 kernel 后,计算机就从实模式过渡到保护模式。磁盘模拟也就不起作用了。

要注意的是这里 ubuntu.iso 要连续存放,在 grub 模式中可以进行测试,将它放在一个新建的分区可以保证这一点。如果内存够大,可以用 map --mem 指令直接将其映射到内存。ISO 文件不一定要放在 C 盘根目录,只要在上面 iso-scan/filename 中指定路径即可。

上面的测试基于grub4dos-0.4.3,windows XP,Dell Dimension E520, ubuntu 8.04 和 ubuntu 8.10 i386 版均测试成功。


PS: ubnutu 8.10 i386 关机和重启好像有点问题,在这台机器上不能正常运行。

grub4dos下载地址:
http://download.gna.org/grub4dos/

2009年12月10日 星期四

[盜貼]用 rsync 做資料同步,並利用 SSH 做安全加密





資料參考來源:




使用 rsync 做資料同步,並利用 SSH 做安全加密
 ( 適用RHEL4、Fedora Core 3、4 及 5 )
rsync 為 Linux 平台上做異地備援時,不可缺少的好工具,但在傳送時是以明碼傳送,一旦封包被攔劫,有被解讀的風險存在,因為我們要利用 SSH 幫我們在傳遞封包時,將資料加密,以避免被人解讀。


一、語法:
   rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
   rsync [OPTION]... [USER@]HOST:SRC DEST
   rsync [OPTION]... SRC [SRC]... DEST
   rsync [OPTION]... [USER@]HOST::SRC [DEST]
   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST

二、使用說明:
 1. 當來源端或目的端的路徑都未包含 : 這個分隔符號時,表示複製本地端的檔案。
2. 當目的端路徑包含單個 : 這個分隔符號時,表示複製本地端檔案到遠端機器 ( 透過 ssh 或 rsh )。
3. 當來源端路徑包含 這個分隔符號時,表示複製遠端檔案到本地端。
4. 當來源端路徑包含 :: 或 rsync:// 這個符號時,表示從遠端 rsync 伺服器複製檔案到本地端。
5. 當目的端路徑包含 :: 或 rsync:// 這個符號時,表示從本地端複製檔案到 rsync 伺服器。
6. 當來源端路徑包含 :: 和加上 --rsh=COMMANS ( -e COMMAND ) 參數,表示使用遠端 shell 程式 (remote shell),並透過遠端的 rsync 伺服器,複製遠端檔案到本地端。
7. 當目的端路徑抱含 :: 和加上 --rsh=COMMAND 參數,表示使用遠端 shell 程式並透過遠端的 rsync 伺服器,複製本地端檔案到遠端機器。
8. 列出遠端機器的檔案,跟 rsync 傳輸相同,只不過把本地端的目的地位置留空。

 注意: 在所有狀況下(列出遠端機器檔案除外),來源端及目的端的路徑最少要有一個是本地端路徑.
三、使用方式如下:
 # rsync -avlR --delete -e ssh 來源host_IP:/etc --exclude X11 --exclude httpd 目的位置
遠端主機下的 /etc 目錄,除了 X11 及 httpd 目錄外,其餘的與本地端做資料同步,並用 ssh 作為加密。
a : archive
v : verbose-msg
l : softlink
R : Relative Pathname

 --delete : 來源的資料如果沒有,則目的的資料一併刪除
 -e : command
 --exclude : 排除以外的目錄,需以相對路徑設定

 # rsync -t *.c 目的host_ip:/src
 將目前路徑下所有符合 *.c 的檔案,與目的主機的 /src 目錄做同步,並保留時間記錄。

 # rsync -avz 來源host_ip:/src/bar /data/tmp
將來源主機的 /src/bar 目錄,與本機 /data/tmp 目錄做同步。
-a 表示使用 archive 模式,保持原有的檔案屬性與權限。
-z 傳輸時壓縮資料。

 # rsync -avlr /var/lib/mysql/ /backup
 將本機 /var/lib/mysql 目錄下所有檔案(含子資料夾),同步一份到 /backup 下做為備份。

 在來源端後面加上一個 / 可避免在目的端的資料夾下額外建立一個資料夾。
例如:rsync -av /src/foo /dest 會在 /dest 下產生一個 foo 的資料夾,表示複製這個資料夾。
rsync -av /src/foo/ /dest 則不會在 /dest 下產生一個 foo 的資料夾,表示複製這個資料夾下的內容。

四、參數:
 -h , --help     顯示rsync求助資訊.

 --version      顯示rsync版本.
 -v , --verbose    複雜的輸出訊息.
 -q , --quiet      安靜模式,幾乎沒有訊息產生.常用在以cron執行rsync.
 -I, --ignore-times   通常rsync為了加快速度會忽略同樣檔案大小且同樣存取時間點的檔案.
可以透過此參數關閉此快速檢查.
--size-only     rsync只檢查檔案大小是否改變,不管時間存取點是否改變.
通常用在mirror,且對方時間不太正確時.

 -c, --checksum    在傳送之前透過檢查碼來檢查所有要傳送的檔案.(會拖慢速度.)
 -a, --archive    archive mode 權限保存模式,相當於 -rlptgoD 參數.
保存幾乎所有的權限設定,除了硬式連結(透過-H設定).

 -r, --recursive    複製所有下層的資料(遞迴)
 -R, --relative      使用相對路徑.
如 : rsync foo/bar/foo.c remote:/tmp/ 在遠端產生/tmp/foo.c檔案
rsync -R foo/bar/foo.c remote:/tmp/  在遠端產生/tmp/foo/bar/foo.c 檔案

 -b, --backup    目的地端先前已經存在的檔案在傳輸或刪除前會被備份.
  --backup-dir=DIR 設定備份的資料夾.
  --suffix=SUFFIX 指定備份的檔案名稱字尾形式(預設為~).

 -K, --keep-dirlinks  接收方將連結到資料夾的檔案視為資料夾處理
 -l, --links       複製所有的連結
 -H, --hard-links    保留硬式連結
 -p, --perms     保留檔案權限
 -o, --owner     保留檔案擁有者(root only)
 -g, --group      保留檔案群組
 -D, --devices     保留device資訊(root only)
 -t, --times     保留時間點
 -n, --dry-run    不實際執行傳送,只顯示將會有的傳輸動作
 -S, --sparse    嘗試去處理稀疏的檔案,讓這些檔案在目的端佔去較少的磁碟空間.
 -W, --whole-file     複製所有的檔案,不額外作檢查.
   --no-whole-file  關閉 --whole-file 參數

 -x, --one-file-system 不要跨越檔案系統分界(只在一個檔案系統處理)
 -B, --block-size=SIZE 強制透過rsync程式去比對修復block-sizeforce
 -e  --rsh=COMMAND 定義所使用的remote shell
 --rsync-path=PATH 定義rsync在遠端機器存放資料的路徑
--existing     只比對更新目的端已經存在的檔案
--ignore-existing    忽略目的端已經存在的檔案(也就是不更新)
--delete        刪除傳送端已經不存在,而目的端存在的檔案
--delete-excluded  除了把傳送端已經不存在,而目的端存在的檔案刪除之外,
也刪除 --exclude 參數所包含的檔案.
--delete-after    rsync預設會在檔案傳送前進行相關刪除動作確保接收端有足夠的檔案空間,
但可以透過 --delete-after 讓刪除動作在檔案傳送後再行刪除.
--ignore-errors    忽略任何錯誤既使是I/O error 也進行 --delete 刪除動作.
--max-delete=NUM 定義rsync不要刪除超過 NUM 個檔案.
--partial      rsync若遇到傳輸過程中斷時,會把那些已經傳輸的檔案刪除.
在某種狀況下保留那些部分傳送的檔案是令人高興的.
你可以透過 --partial 參數達到這個目的.
--partial-dir=DIR  在 --partial 參數啟動時,你還可以定義rsync把那些部分傳送的檔案寫入定義的資料夾,
  而非直接寫入目的端.需要注意的是,此資料夾不應該被其他使用者可以寫入.(如:/tmp)
--force       當目的端資料夾被傳送端非資料夾名稱覆蓋時,強制rsync刪除資料夾,即使該資料夾不是空的.
--numeric-ids      不將傳送端檔案的uid及gid值,與目的端的使用者/群組進行配對.
若傳送端並沒有uid及gid的對應名稱(如:原帳號群組被刪除的遺留檔案),
或目的端沒有相對應的帳號/群組,保留數字型態的uid/gid
--timeout=TIMEOUT 設定 I/O 逾時的時間(秒). 超過這個秒數而沒有資料傳送,rsync將會結束.
預設為0,也就是沒有定義逾時時間.

 -T, --temp-dir=DIR   定義rsync在接收端產生暫時性的複製檔案時使用資料夾暫存.
預設是直接在接收端資料夾直接產生暫存檔案.
--compare-dest=DIR 定義rsync在目的端建立資料夾來比對傳送過來的檔案.
--link-dest=DIR   與 --compare-dest 相同,但同時會針對無法改變的檔案建立硬式連結.

 -z, --compress       壓縮模式,當資料在傳送到目的端進行檔案壓縮.
 -P           -P參數和 --partial --progress 相同.只是為了把參數簡單化.
 -C, --cvs-exclude      排除那些通常不希望傳送的檔案.定義的方式與CVS傳送相同:
RCS SCCS CVS  CVS.adm  RCSLOG  cvslog.*  tags  TAGS  .make.state
.nse_depinfo  *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej
.del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core .svn/
符合以上條件的都會被忽略而不傳送.
--exclude=PATTER   符合PATTERN(規則表示式)樣式的檔案不進行傳送
--exclude-from=FILE 和--exclude參數相同,不過是把不進行傳送的檔案事先寫入某一檔案.
  執行時,透過此參數讓rsync讀取.(#開頭的行列或空白行會被rsync忽略)
--include=PATTERN 定義rsync不要排除符合pattern樣式的檔案.
--include-from=FILE  和--include參數相同,只不過把要包含的檔案寫到某一檔案.
--files-from=FILE     把要傳送的檔案名稱都精確的寫入某一檔案,讓rsync讀取.
   如: rsync -a --files-from=/tmp/foo /usr remote:/backup

 -0,--from0       定義檔案所要讀取的檔案是null字元結尾.
--version      顯示版本訊息.
--daemon       定義rsync以daemon型態執行.
--no-detach       當以daemon型態執行時,不要進行分裂且變成背景程序.
--address=ADDRESS 定義所要連結(bind)的ip位址或是host名稱(daemon限定)
--config=FILE    定義所要讀取的設定檔rsyncd.conf位置(daemon限定)
預設值為 /usr/local/etc/rsyncd.conf
--port=PORT     定義rsyncd(daemon)要執行的port(預設為tcp 873)                 
--blocking-io     使用blocking I/O連結遠端的shell,如rsh , remsh
--no-blocking-io     使用non-blocking連結遠端的shell,如ssh (預設值)
--stats       顯示檔案傳送時的資訊狀態
--progress     顯示傳送的進度.(給檔案傳送時,怕無聊的人用的..)
--log-format=FORMAT 定義log的格式(在rsyncd.conf設定)
--password-file=FILE 從檔案讀取與遠端rsync伺服器連結的密碼
--bwlimit=KBPS    定義傳輸頻寬的大小(KBytes/秒)
--write-batch=FILE  把紀錄資料寫入一個檔案(給其他相同環境且相同需求的機器使用)
--read-batch=FILE  透過讀取紀錄檔案來進行傳輸.(檔案由 --write-batch 參數產生)
--checksum-seed=NUM 定義檔案 checksum-seed 的大小(byte)

 -4, --ipv4       使用IPv4協定
 -6, --ipv6       使用IPv6協定


BloggerAds