PIXNET Logo登入

小宇哥的CS學習筆記

跳到主文

關於Coding的心得都會紀錄在這

部落格全站分類:生活綜合

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 1月 06 週五 201217:49
  • Socket programming on Solaris

http://blogs.oracle.com/paulie/entry/retrieving_mac_address_in_solaris
 
http://www.huihoo.org/gnu/linux/is.html#bind
 
(繼續閱讀...)
文章標籤

小宇哥 發表在 痞客邦 留言(0) 人氣(20)

  • 個人分類:Solaris
▲top
  • 12月 21 週三 201117:02
  • 讓隨身碟可以開機~grub安裝

讓隨身碟可以開機~grub安裝

張貼者:吳重毅 vinci's blog

(繼續閱讀...)
文章標籤

小宇哥 發表在 痞客邦 留言(0) 人氣(1,376)

  • 個人分類:Linux
▲top
  • 12月 21 週三 201115:38
  • 設定VirtualBox從usb開機

http://funp.com/t1231984#p=1231984
 
http://bbs.wuyou.com/viewthread.php?tid=185488
(繼續閱讀...)
文章標籤

小宇哥 發表在 痞客邦 留言(0) 人氣(879)

  • 個人分類:
▲top
  • 12月 21 週三 201111:46
  • 文件版本 一致性作法


文件版本 一致性作法


分類:解決方案
2011/10/11 13:00
(繼續閱讀...)
文章標籤

小宇哥 發表在 痞客邦 留言(0) 人氣(59)

  • 個人分類:Linux
▲top
  • 12月 21 週三 201111:45
  • find(1) - Linux man page

find(1) - Linux man page
Name
(繼續閱讀...)
文章標籤

小宇哥 發表在 痞客邦 留言(0) 人氣(27)

  • 個人分類:Linux
▲top
  • 12月 21 週三 201111:15
  • GRUB基本使用說明

GRUB基本使用說明 
GRUB是一個多重開機管理工具,它可用來啟動Linux、BSD、OS/2、BeOS與Windows95/98/NT等眾多作業系統,GRUB是一個獨立於作業系統之外的開機程式,並不像LILO是依靠Linux才能進行設定與維護,也提供了類似Bash的命令列模式,讓使用者更方便地設定GRUB。 
取得與安裝GRUB: 
GRUB的原始碼壓縮檔可至GNU的ftp站台( ftp://alpha.gnu.org/gnu/GRUB/ )下載最新版本 ,下載回來後可存放在/usr/local/src/目錄下並將其解壓縮: 
cp grub.tar.gz /usr/local/src/ 
tar zxvf grub.tar.gz 
在GRUB的目錄下執行configure檔、make與make install,如下: 
./configure 
make 
make install 
當make install完成後GRUB也已順利安裝完畢,並有三個指令檔也被安裝至系統中:grub、grub-install與mbchk。而GRUB的相關檔案通常被安裝到/usr/local/share/grub的目錄下。
接下來先假設硬碟分割如下: 
hda1:Windows98 (hd0,0) 
hda2:Slackware Linux (hd0,1) 
hdb1:Mandrake Linux (hd1,0) 
注意的是GRUB認硬碟的方式跟Linux是不一樣的,在Linux中第一顆IDE硬碟是hda(SCSI:sda)以此類推,而GRUB則將第一顆IDE硬碟視為hd0(SCSI:sd0)以此類推;在Linux中第一顆IDE硬碟的第一個分割區是hda1(SCSI:sda1)以此類推,而GRUB將第一顆IDE硬碟的第一個分割區表示為hd0,0(SCSI:sd0,0)以此類推。 
製作GRUB啟動磁片: 
製作GRUB啟動磁片其實不難,首先需要兩個必備檔案,分別是stage1與stage2,可以在GRUB的安裝目錄下的i386-pc目錄中找到這兩個檔案,以及一片已格式化的乾淨磁片,然後依照下面的製作步驟就可製作出GRUB的啟動磁片: 
cd /usr/local/share/grub/i386-pc/ 
dd if=stage1 of=/dev/fd0 bs=512 count=1 
dd if=stage2 of=/dev/fd0 bs=512 seek=1 
製作好了GRUB的開機磁片之後,就可以試著使用GRUB來進行多重作業系統的開機啟動。 
利用GRUB開機磁片啟動系統: 
接著重新啟動系統並設定BIOS由磁片開機,然後就可以看到'grub>'的命令列正等待指令,這就是GRUB的命令列環境,表示GRUB已順利地從啟動磁片載入並正常運作當中了。現在假設要啟動上述的Slackware Linux的話,在GRUB提示符號下鍵入如下的指令,如此就會進入Slackware Linux系統: 
grub> root (hd0,1) 
grub> kernel /boot/vmlinuz root=/dev/hda2 ro 
grub> boot 
root指令會mount後面參數的硬碟分割區位置。當mount完成後kernel指令會載入其參數的系統核心,Linux的核心通常是在/boot目錄下名為vmlinuz的檔案。最後的兩個參數都是要傳給剛載入的核心,root=/dev/hda2是告訴核心根目錄的位置是在/dev/hda2,並要求掛載成唯讀(ro)。 
最後執行boot指令以進行Slackware系統的開機啟動。同理,位在hdb1上的Mandrake Linux也可以用類似的方式啟動: 
grub> root (hd1,0) 
grub> kernel /boot/vmlinuz root=/dev/hdb1 ro 
grub> boot 
現在root指令改mount (hd1,0)的分割區,此分割區就是Mandrake Linux的根目錄位置。然後kernel指令載入Mandrake的核心檔,告訴核心Mandrake系統的根目錄是在/dev/hdb1,並要求掛載成唯讀。最後以boot指令進行系統的啟動。 
以上的方式都可以順利地啟動Linux系統,但是對Windows系統可是不管用的,要啟動在hda1上的Windows98的話,則要換些指令才行得通,請在GRUB命令列中依序鍵入下列指令就可以進入Windows98: 
grub> rootnoverify (hd0,0) 
grub> chainloader +1 
grub> makeactive 
grub> boot 
以rootnoverity指令讓GRUB不要mount (hd0,0)的分割區,只要知道待會是要啟動此分割區上的作業系統。chainloader +1的意思是指定此分割區上的第一個磁區來做啟動。makeactive指令是要在此分割區上設定'active'的旗標,只要是Windows的作業系統都是要這麼做的。最後以boor指令進行開機。 
使用硬碟上的GRUB開機啟動: 
GRUB的開機磁片固然方便好用,但製作GRUB開機磁片的目的只在於系統救援之用,要能確實享用GRUB的強大功能,最好是可以用硬碟上的GRUB來進行開機,就像LILO一樣安裝到硬碟的MBR上。 
首先要在系統上建立GRUB專用的開機目錄/boot/grub,如同製作GRUB的開機磁片一樣須要stage1檔和stage2檔,所以請把GRUB安裝目錄下的i386-pc目錄中的stage1檔和stage2檔copy到剛剛建立的/boot/grub目錄底下: 
mkdir /boot/grub 
cp /usr/local/share/grub/i386-pc/stage* /boot/grub 
完成之後鍵入指令GRUB指令進入GRUB命令列環境,在GRUB命令列環境裡鍵入如下的指令: 
grub> root (hd0,2) 
grub> setup (hd0) 
grub> quit 
如此即可完成GRUB在/boot/grub中的開機設定,先用root指令mount目錄/boot/grub所在的位置,其中的(hd0,2)就是指上面假設的Slackware系統,也就是說/boot/grub目錄是在Slackware系統中所建立的。所若是要改成由Windows98來放置GRUB的stage檔的話,就要在Windows98的系統上建立/boot/grub的目錄,並將stage1檔和stage2檔存放在Windows98上的\boot\grub目錄裡,而root指令的參數也要改為Windows98所在的分割區,也就是上面假設的(hd0,0)。第二個指令'setup'是指要將GRUB安裝在哪個位置來開機啟動,如果是要安裝到硬碟的MBR上的話只須加上硬碟的位置如(hd0),若是要安裝到硬碟第一個分割區上的第一個磁區的話就要加上分割區的位置如(hd0,0)。 
除非是有特殊的情況,不然最好是裝在硬碟的分割區上較安全。最後使用quit指令離開GRUB命令列環境。 
使用選項清單: 
現在雖然可以用GRUB來做多重開機的管理,但每次都要輸入繁雜的指令也不方便,因此GRUB也提供了選項清單的方式,讓每次開機時只須按上下鍵選擇要開機的系統再按下Enter鍵即可進行開機而不必再輸入任何的指令。GRUB在開機時會先尋找/boot/grub目錄下的menu.lst檔,找到的話GRUB就會依照menu.lst檔的內容顯示一個選項清單的圖形介面,讓使用者選擇要開機的作業系統。 
首先在/boot/grub目錄下建立一個新檔名為'menu.lst',底下是menu.lst檔的設定範例: 
#/boot/grub/menu.lst 
timeout 30 
default 0 #Default Slackware Linux 
fallback 1 #Windows98 
fallback 2 #Mandrake Linux 
color light-green/brown blink-red/blue 
# For booting Slackware Linux 
title Slackware 
root (hd0,1) 
kernel /boot/vmlinuz root=/dev/hda2 ro 
#For booting Windows 
title Windows98 
rootnoverify (hd0,0) 
chainloader +1 
makeactive 
#For booting Mandrake Linux 
title Mandrake 
root (hd1,1) 
kernel /boot/vmlinuz root=/dev/hdb1 ro 
上面menu.lst檔的範例是針對之前所假設的硬碟分割區上配置的作業系統而設定的。menu.lst是以'#'符號當作注解的開頭,GRUB會忽略所有以'#'符號啟始的注解行。timeout指令是指GRUB啟動之後的等待時間,以秒為單位,所以上面的範例就是等待30秒的意思。default指令就是當GRUB啟動之後等待的時間超過指令timeout所設定的時間的話,就會指令default後面參數所指定的系統,參數0代表menu.lst檔中第一個被設定的作業系統,以上面的範例而言就是指Slackware Linux,因為它是最先被設定的,如果參數改為1的話就是啟動Windows98,以此類推。fallback指令是指當GRUB啟動指令default所指定的作業系統失敗的話,便會啟動指令fallback所指定的作業系統,以上面的範例而言,當Slackware啟動失敗的話GRUB就會啟動fallback所指定的便是Windows98。指令color可以設定GRUB選項清單的前景/背景的顏色,有關GRUB可以指定的顏色可以查看GRUB的info文件。接下來的指令就是設定作業系統,指令title可以設定該作業系統的標題,而其下的設定的指令?銋窵N是原本在GRUB命令列中所鍵入的指令是一樣的,差別是不用再加上boot指令。 
設定好menu.lst檔後,將此設定檔存在/boot/grub目錄底下即可,然後重新開機便會看到GRUB漂亮的選項清單,?{在就可以試著啟動不同的作業系統了。 
以上是GRUB的基本使用說明,當硬碟上有許多的作業系統時,使用GRUB是理所當然的,並且是正確的選擇,就算硬碟上只有一兩種作業系統也可以使用GRUB。當然GRUB的功能是很強大的,已足以取代傳統的LILO,可以多閱讀GRUB的info文件裡面的說明。 
(繼續閱讀...)
文章標籤

小宇哥 發表在 痞客邦 留言(0) 人氣(8,056)

  • 個人分類:Solaris
▲top
  • 12月 21 週三 201110:07
  • 有備無患-備份 MBR 及磁碟分割表(Partition Table)

有備無患-備份 MBR 及磁碟分割表(Partition Table)



1802ZFS好文轉寄






  • ZFS




(繼續閱讀...)
文章標籤

小宇哥 發表在 痞客邦 留言(0) 人氣(517)

  • 個人分類:Solaris
▲top
  • 12月 20 週二 201117:13
  • Grub on a stick

Grub on a stick
This was posted on the OpenSolaris discuss list, it explains how to install grub on a usb stick in Solaris, figure I would archive it here so I can find it later when I need it, also it may help someone else who knows….
 
---------- Forwarded message ----------
From: Magnus Forsberg
To: opensolaris-discuss@HIDDEN
Date: Wed, 24 Aug 2005 07:22:16 -0700 (PDT)
Subject: [osol-discuss] HOWTO: Installing GRUB on USB stick
Installing GRUB on USB stick
--------------------------------
(繼續閱讀...)
文章標籤

小宇哥 發表在 痞客邦 留言(0) 人氣(46)

  • 個人分類:Solaris
▲top
  • 12月 19 週一 201120:56
  • 『雲端』與『姆指電』-自行製作 OpenSolaris 開機姆指碟

『雲端』與『姆指電』-自行製作 OpenSolaris 開機姆指碟



907General好文轉寄



 
(繼續閱讀...)
文章標籤

小宇哥 發表在 痞客邦 留言(0) 人氣(64)

  • 個人分類:Solaris
▲top
  • 12月 19 週一 201120:19
  • [轉載] Solaris 10 基礎介紹

由於筆者原本計畫自己撰寫..但是發現有更好的文章..因此特別從對岸的ChinaUnix論壇轉載一位Solaris版主的文章與鳥哥的朋友分享..版主的暱稱風之幻想..風之幻想版主的文章可以供有興趣Solaris的朋友當做參考範例..順帶一提Study Area的站長netman兄在ChinaUnix的Shell版中發表的精華帖--Shell十三問..可謂之經典...對於Shell Script有興趣的朋友可以閱讀.. 
[補充] 感謝站長鳥哥的熱心提醒以下為此三篇文章的連結..作者總共寫暸16篇基礎介紹..有興趣可在連結上的論壇搜尋閱讀
1. [url]http://bbs.chinaunix.net/viewthread.php?tid=887227&highlight=风之幻想[/url]
2.[url]http://bbs.chinaunix.net/viewthread.php?tid=887869&highlight=风之幻想[/url]
3.[url]http://bbs.chinaunix.net/viewthread.php?tid=888126&highlight=风之幻想[/url]
 
以下先轉載三篇基礎文章..由於本著原汁原味的精神..小弟僅將簡體翻譯成繁體..不做任何增減修改(若有看不懂得可以在此討論)..以尊重原創者的智慧..(第一章是安裝因此略過) 
第二章 solaris10的目錄結構 
1. 描述/(ROOT)子目錄 
2. 描述文件的组成 
3. 描述文件的類型 
4. 使用Hard Link 
solaris的目錄層次是為了更加方便的管理。為了建立不同使用目的的原則,目錄架構內部建立了目錄樹的分割。舉例來說,根目錄的存在支援著本地系統的私有檔案和其他系統共享的檔案以及用戶的主目錄。 
邏輯上說,所有的目錄都依附與根目錄。實際上目錄能夠定位在單一的檔案系統上,或者分離的多個檔案系統上。每個SOLARIS必須有一個ROOT檔案系統,同時,其他的檔案系統可以掛結在這個目錄層上。許多的檔案系統都創建在磁片片上同時這些檔案系統包含或者支援檔案和目錄。 
介紹重要的系統目錄︰ 
SOLARIS OE是有一些重要的系統目錄和包含必要的適合作業系統執行的功能性檔案組合而成的一個層面。下面列出了SOLARIS,OE中一些十分重要的系統目錄和次目錄。 
/ 根目錄覆蓋了所有的檔案系統的命名空間。 
/bin 這個符號連接在/usr/bin這個目錄上。這個目錄存儲了標準系統命令的二進製檔案。 
/dev 邏輯設備名存放的主目錄。這個目錄的內容是將一些設備檔案的符號連接到/devices這個目錄上。 
/devices 這個目錄是物理設備名的根目錄。 
/etc 這個目錄是支援系統管理數據庫和主機的特殊配置檔案。 
/export 共享檔案的預設目錄象是用戶的家目錄,應用軟體,或者是其他共享檔案系統。 
/home 用戶家目錄的預設目錄或者是用戶目錄的掛結點。 
/kernel 是匯入過程所要求的一個獨立平台用於裝載kernel模式的一個目錄。 
/lib 這個目錄下的內容是共享所有的檔案和服務管理處理的庫的連接。 
/mnt 便利,臨時的一個檔案掛結系統。 
/opt 為附加應用包而設立的一個預設目錄或者掛結點。 
/platform 依附於/kernel的目錄。 
/sbin 一個包括實質處理模式的單用戶目錄,列如手工的系統故障恢復和匯入過程的使用。 
/tmp 一個臨時檔案目錄。這個目錄在系統從新啟動的時候會自動清空。 
/usr 這個目錄包含所有系統用戶使用的程式,腳本和庫。這個目錄的名字是UNIX系統資源的首字母縮寫。 
/var 這個目錄下是一些可變檔案,包括臨時,日誌,或者狀態檔案。 
/dev/fd 檔案腳本器 
/devices 物理設備名的初始目錄 
/etc/mnttab 描述你當前系統的mount情況。 
/etc/svc/volatile 這個目錄下是一些log檔案以及系統執行的檔案的相關狀態。 
/proc 系統當前執行的進程的資訊。 
/system/contract CTFS(契約檔案系統)是一個創建,控制,和觀察契約的一個界面。契約提升了進程了系統資源之間交互的性能。SMF使用契約來跟蹤進程的情況。 
/ststem/object 用來描述當前系統load的module。 
/dev/dsk 塊磁片設備。 
/dev/fbs 楨緩寸器設備檔案。 
/dev/md 後磁片的邏輯卷管理。 
/dev/pts 虛擬終端設備。 
/dev/rdsk 裸磁片設備。 
/dev/rmt 裸卡帶設備 
/dev/sound 聲音設備和聲音設備控制檔案。 
/dev/term 串行設備。 
表2 /etc 
/etc/acct 記述系統的一些配置資訊。 
/etc/cron..d cron使用的配置資訊。 
/etc/default 可變程式的一些預設資訊。 
/etc/inet 網路服務的配置檔案。 
/etc/init.d 停止和開始服務的腳本,以及用於改變執行級別的一些檔案的存儲。 
/etc/lib 當/usr檔案系統不可用時需要的一些動力連接庫。 
/etc/lp 列印子系統的配置資訊。 
/etc/mail 郵件子系統的配置資訊。 
/etc/nfs NFS登陸服務的配置資訊。 
/etc/opt 選擇包的配置消息。 
/etc/rc#.d 當進入和離開特殊執行級別的腳本。 
/etc/security 控制RBAC和一些私有的安全設定。 
/etc/skel 新用戶登陸的預設的初始化shell檔案。 
/etc/svc SMF的數據庫和log檔案的所在。 
/etc/zones zone的初始化和參考檔案。 
/usr/bin 標準的系統命令。 
/usr/ccs C的編輯程式和庫。 
/usr/demo 演示程式和數據。 
/usr/dt CDE(Common Desktop Environment)軟體的目錄和掛接位置。 
/usr/include 頭檔案(C程式和其他一些程式) 
/usr/java 包含JAVA程式和庫的目錄。 
/usr/kernel 一個可以加載的核心模式的獨立平台同時,在系統啟動過程中並沒有具體的要求。 
/usr/lib 數據庫所倚賴的體系架構,可變程式庫和用戶並不直接到入的二進製資訊。 
/usr/opt 可選擇包的一些配置資訊。 
/usr/sbin 系統管理命令。 
/usr/spool /var/spool的符號連接檔案。 
/var/adm log檔案所在。 
/var/crash crash dump的所在。 
/var/spool 
/var/svc 
/var/tmp 
檔案組成的介紹︰ 
SOLARIS OE的所有檔案所使用的檔案名和記錄被稱為資訊接點。許多數據也使用數據塊。總體來說,每個檔案名有一個相應的資訊接點,同時資訊接點提供數據塊的接入。 
檔案名 
檔案名是許多通常可進入和可操作的檔案目標。一個檔案必須有檔案名以及相對應的資訊接點。 
資訊接點 
資訊接點是SOLARIS OE使用關於檔案資訊記錄的目標。總的來說,資訊接點包含了2部分,第一,資訊接點含蓋了關於檔案的資訊,包括,檔案的所有者,檔案的權限,和它的大小。第二,資訊接點包含了檔案所對應的數據塊的指標。 
資訊接點是一些數字,同時檔案系統包含了屬於它自己的資訊接點清單。當一個新的檔案系統創建時,完成的這個新的資訊接點清單也創建在這個檔案系統中。 
數據塊 
數據塊是一些用於存儲數據的磁片空間單元。規則的檔案,目錄和符號連接使用數據塊。設備檔案並不佔有數據塊。 
認識檔案模式︰ 
Sloaris OE支援一種可以在所有以UNIX為基礎作業系統上找到的標準的檔案設定模式。大體上來說,檔案提供的功能有︰數據存儲,活動設備,或者允許交互處理間的通信。在Sloaris OE中存在著多種檔案模式,歸納主要有下列4種︰ 
正規或者道統的檔案。 
目錄 
字符連接 
設備檔案。 
正規檔案,目錄和字符連接用於存儲各種類型的數據。設備檔案並不存儲數據。而設備檔案用於提供設備的使用權限。 
使用ls命令可以用於辨別檔案類型之間的區別。用ls l命令看到的第一欄字符資訊是用來指示檔案類型的。 
一般性檔案 
是系統中存在的普通的大多數的檔案,能夠儲存用戶的各種類型的數據。可以透過vi進行編輯。 
目錄 
目錄是存儲了檔案名以及和inode的關聯資訊。 
連接檔案 
連接檔案是相當與其他一個檔案的指標。可以用ln來建立。 
第三章 管理本地磁盤設備 
目標︰ 
描述基本的磁盤結構 
描述磁盤的命名規則 
列出設備 
重新配置設備 
執行硬盤分區 
管理磁盤的label 
描述SMC 
使用SMC分區 
首先,先來說一下物理磁盤的組成︰ 
磁盤的存儲區域是由一些碟片組成的。 
這些碟片是旋轉的 
磁片讀寫定位機械臂移動磁片頭來進行定位 
讀寫把數據讀寫到碟片表面的磁介質上。 
一個碟片又被分為︰扇區(一個扇區為512byte,也就是一個磁片塊),磁道,柱面 
磁片slice就是將一個磁片在邏輯上分出來的分區。一般來說一個磁片可以分成8個區0~7。 
一般slice2代表整個磁片。 
一般的分配方式為︰ 
0 / 
1 swap 
2 整個磁盤 
3 
4 
5 /opt 
6 /usr 
7 /export/home 
但是,在安裝的時候,可以根據自己的需要來安裝很分配。 
磁片的命名規則一般為︰c#t#d#s#的模式。但是如果加如了卷管理的模式,磁片的命名規則會根據卷管理軟體的要求進行更改的。比如:vertias volume manager下為/dev/vx/dsk/dgname/volume。 
C︰一般 controller number 
T︰代表target number 
D: 一般代表disk number 
S: 一般代表slice number 
在solaris下所有的磁片一般被分為3種命名模式︰ 
邏輯設備名 
物理設備名 
實名 
邏輯設備名是來源於物理設備名的一個連接,連接於/devices目錄。所有的邏輯設備名都在目錄/dev下。邏輯設備名的命名模式就是採用c#t#d#s#。所有在/dev下的設備又分為/dev/dsk和/dev/rdsk兩中塊設備和字符設備。 
物理設備名 
物理設備名是系統中唯一用來標識本地物理設備的。設備名在/devices下。物理設備名是由一系列的接點名組成的。用/來進行路徑的區分。光纖盤與其他的不太一樣是有WWN(world wide name)號來表示。 
實名是有kernel為每個設備分發的一個縮寫名。 
Sdn︰代表SCSI硬碟。 
Dadn︰代表ide硬碟 
Ssdn︰代表光纖盤 
檢視設備設備名可以在/etc/path_to_inst檔案中,有詳細的設備清單清單。(檢視網卡設備的時候比較輕鬆) 
也可以使用prtconf |grep v not來檢視設備清單的清單。 
在一個就是format命令。 
重新識別設備的時候,可以透過3種模式一種是︰ 
Touch /reconfigure 
Init 5 
然後,加上設備然後再重新啟動。(基本上已經不用這樣的模式了) 
另一種是用drvconfig 
再一種是devfsadm(8以後開始出現的命令) 
format實用程式是一個系統管理員工具,用於在Solaris操作環境中對硬碟的準備工作。 
用戶可以透過使用format實用程式來進行磁片的分類管理,主要的目的是對磁片進行分區。 
為磁片分區,系統管理員需要︰ 
。正確的識別磁片 
。規劃磁片 
。使用format實用程式分區 
。為磁片加上新分區的標籤(label) 
只有root用戶可以使用format實用程式。如果普通用戶營運了format實用程式,系統將顯示沒有權限或者沒有找到磁片。 
磁片卷標和分區表 
在Solaris操作環境中,每一個磁片都在存儲區域旁邊指定一個區域,來設定關於磁片的控制單元,表面分佈和分區的訊息。 
這個訊息稱為磁片的卷標。其他部分則是用於描述內容的卷表(volume table of contents,VTOC)。這個磁片卷標或者VTOC儲存在磁片的第一個扇區。 
為一個磁片建立卷標是為了要在磁片上寫入分區的訊息。如果系統管理員在定義分區後忘記了為磁片加卷標,分區訊息就會丟失。 
磁片卷標的一個重要部分就是定義磁片分區的分區表,分區在柱頭上的分界線和所有分區的長度。 
Flag︰wm=磁片分區是可寫並且可mount的 
wu=磁片分區是可寫並且不可mount的 
rm=磁片分區是可讀並且可mount的 
ru=磁片分區是可讀並且不可mount的 
Cylinders分區的起始柱頭數和終止柱頭數 
Size分區的長度︰Mbytes(mb),Gbytes(gb),Blocks(b),Cylinders(c) 
Blocks每個分區的柱頭的總數和扇區的總數 
定義磁片Slices 
Slices是定義在一個柱頭組和柱頭的長度上的。柱頭組的起始位置是柱頭0 
定義磁片partitions 
下面描述了定義磁片的partitions先決條件。 
不良的條件 
當建立或者改變底盤的slices時,有2種可能發生的不良條件︰浪費的磁片空間和重疊的磁片Slices。 
浪費的磁片空間︰當一個或者多個柱頭沒有在Slices中定位所產生的空間 
重疊的磁片Slices︰當一個或者多個柱頭同時被多個Slices定位。 
定位磁片分區表 
當root用戶使用format實用程式選擇磁片的分區時,一個磁片分區表的拷貝就被讀入內存並且顯示當前的磁片卷標。 
Format實用程式通常是倚賴於/etc/format.dat檔案來讀或者調用format實用程式。可以使用/etc/format.dat檔案來快速定義可用磁片表和預先的分區表。 
用戶可以使用下列命令來將從/etc/format.da檔案中預先設定的分區表讀入當前卷標。 
。select︰從/etc/format.dat檔案中選擇一個預先設定的分區表 
。print︰顯示選擇的分區表 
。label︰將選擇的分區表寫入磁片的卷標 
。verify︰定位磁片卷標和顯示新訊息 
。disk︰選擇磁片 
。name︰為改變了的分區表建立一個名字 
。save︰儲存名字到./format.dat文件中 
進行磁盤分區 
按照下面的步驟為磁盤分區 
1.Root用戶在提示符前輸入format並且回車 
# format 
Searching for disks...done 
AVAILABLE DISK SELECTIONS: 
0. c0t0d0 <SUN18G cyl 7506 alt 2 hd 19 sec 248> 
/pci@1f,4000/scsi@3/sd@0,0 
1. c0t1d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133> 
/pci@1f,4000/scsi@3/sd@1,0 
Specify disk (enter its number): 1 
Format實用程序搜索所有已經綁定的磁盤,每個被找到的磁盤,format都顯示他的邏輯設備名,硬件名,物理參數和物理設備名。 
2.選擇在磁片邏輯設備名左邊的編號選擇第二個磁片。 
selecting c0t1d0 
[disk formatted] 
FORMAT MENU: 
disk - select a disk 
type - select (define) a disk type 
partition - select (define) a partition table 
current - describe the current disk 
format - format and analyze the disk 
repair - repair a defective sector 
label - write label to the disk 
analyze - surface analysis 
defect - defect list management 
backup - search for backup labels 
verify - read and display labels 
save - save new disk/partition definitions 
inquiry - show vendor, product and revision 
volname - set 8-character volume name 
!<cmd> - execute <cmd>, then return 
quit 
用於分割Slices的特定的菜單包括 
。partition︰顯示分區選單 
。label︰將當前定義的分區寫入磁片卷標 
。verify︰讀並且顯示磁片卷標 
。quit︰退出format實用程序 
3.在format提示符輸入partition 
format> partition 
PARTITION MENU: 
0 - change `0' partition 
1 - change `1' partition 
2 - change `2' partition 
3 - change `3' partition 
4 - change `4' partition 
5 - change `5' partition 
6 - change `6' partition 
7 - change `7' partition 
select - select a predefined table 
modify - modify a predefined partition table 
name - name the current table 
print - display the current table 
label - write partition map and label to the disk 
!<cmd> - execute <cmd>, then return 
quit 
partition菜單已經顯示了。這個選單使用戶可以執行下列功能 
。0-7︰指定8個分區的柱頭組和長度 
。select︰從/etc/format.dat中選擇之前定義的分區表 
。modify︰改變之前定義的分區表 
。name︰命名當前的分區表 
。print︰顯示當前的分區表 
。label︰將當前分區表寫入磁片卷標 
4.在partition提示符輸入print顯示在內存中的磁片卷標的拷貝。 
partition> print 
Current partition table (original):;分區名 
Total disk cylinders available: 4924 + 2 (reserved cylinders) 
Part Tag Flag Cylinders Size Blocks 
0 unassigned wm 0 0 (0/0/0) 0 
1 unassigned wm 0 0 (0/0/0) 0 
2 backup wm 0 - 4923 8.43GB (4924/0/0) 17682084 
3 unassigned wm 0 0 (0/0/0) 0 
4 unassigned wm 0 0 (0/0/0) 0 
5 unassigned wm 0 0 (0/0/0) 0 
6 unassigned wm 0 0 (0/0/0) 0 
7 home wm 0 - 4923 8.43GB (4924/0/0) 17682084 
分區的名字顯示在第一行的括號中 
下面顯示每列的含義 
。Part︰磁片的Slice編號 
。Tag︰之前定義的可選的標記符 
。Flag︰之前定義的可選的標誌位 
。Cylinders︰Slice的起始柱頭和結束柱頭 
。Size︰Slice的容量 
。Blocks︰每個Slice的柱頭的總數和扇區的總數 
5.輸入0選擇Slice 0 
partition> 0 
Part Tag Flag Cylinders Size Blocks 
0 unassigned wm 0 0 (0/0/0) 0 
Enter partition id tag[unassigned]: 
Enter partition permission flags[wm]: 
Enter new starting cyl[0]: 
Enter partition size[0b, 0c, 0.00mb, 0.00gb]: 400 
partition> 
6.當提示ID tag時,輸入問號可以列出所有的可選項 
7.按回車鍵則使用默認的tag 
8.當提示permission flags時,輸入問號可以列出所有的可選項 
9.按回車則使用默認的flag 
10.輸入回車可以設置起始的柱頭 
11.為Slice 0輸入新的容量 
12.輸入print,顯示改變後的當前Slice 0 
13.輸入1選擇Slice 1 
14.按回車選擇默認的tag和flags 
15.輸入Slice 1的新起始柱頭 
16.輸入Slice 1的新容量 
17.輸入print顯示改變後的Slice 
18.輸入7選擇Slice 7 
19.按回車選擇默認的tag和默認的flag 
20.輸入Slice 7的新起始柱頭 
21.輸入Slice 7的新容量,可以輸入$,表示自動分配到最後一個柱頭 
22.輸入print顯示分區表 
23.檢測沒有錯誤後,使用label命令為磁盤建立卷標 
保存分區表到/etc/format.dat文件 
1.在partition菜單輸入name,並且輸入一個唯一的名字 
2.輸入quit命令退出分區菜單 
3.輸入save保存新的分區表信息。輸入/etc/format.dat的完整路徑名 
定位和使用定製的分區表 
1.進入partition選單 
2.使用select命令選擇定製的分區表 
3.將選擇的分區儲存到磁片卷標中 
4.退出partition選單 
5.讀新的磁片卷標 
6.退出format實用程式 
使用modify命令重新分發磁片 
用戶有時需要改變Slice的容量,例如磁片擴容,或者減少。最簡單的辦法就是在partition選單中使用modify命令。 
當一個磁片現有的Slice被重新分區並重新設定了卷標,那麼磁片上所有現有的數據都將丟失。現有的重要數據必須備份。 
Free hog分區是用於一個儲存其他Slice容量改變的磁片空間 
使用modify命令 
使用下列步驟改變磁片Slice的容量 
1.輸入format並且返回 
2.選擇一個適當的磁片 
3.輸入partition 
4.輸入modify並且返回 
5.輸入返回以認可預設的選擇 
6.選擇預設的選項並且返回或者輸入yes 
7.按返回認可Slice 6是Free Hog分區。如果Slice 6沒有分發空間,那麼用戶必須指定其他的Slice 
使用Free Hog Slice 
當root調用format實用程式改變一個或者多個磁片的Slices,一個“臨時性“的Slice必須被指定來為擴張和收縮調節運做 
當其他Slics是擴展的,恢復,獨佔或者一個Slice變小是犧牲的空間時,這個臨時Slice是用於調整空間的。所以,這個臨時的Slice有時被成為free hog 
free hog分區只在安裝或者營運format時存在。普通情況下是沒有free hog分區存在的 
8.輸入Slice 0的容量,並且回車 
9.按回車默認其他分區的容量 
10.按回車確認使用這個分區表 
11.給當前的分區命名 
12.將改變了的分區表寫入磁盤卷標 
13.輸入quit退出 
查看磁盤的VTOC 
用戶可以使用2個方法來查看,定位磁盤的卷標或者VTOC 
第一個方法是在format實用程序中是verify 
第二個方法是調用prtvtoc命令 
使用verify命令讀磁盤的VTOC 
1.在format提示符下輸入verify並且回車 
format> verify 
Primary label contents: 
Volume name = < > 
ascii name = <SUN18G cyl 7506 alt 2 hd 19 sec 248> 
pcyl = 7508 
ncyl = 7506 
acyl = 2 
nhead = 19 
nsect = 248 
Part Tag Flag Cylinders Size Blocks 
0 root wm 446 - 1376 2.09GB (931/0/0) 4386872 
1 swap wu 0 - 445 1.00GB (446/0/0) 2101552 
2 backup wm 0 - 7505 16.86GB (7506/0/0) 35368272 
3 unassigned wm 0 0 (0/0/0) 0 
4 unassigned wm 0 0 (0/0/0) 0 
5 unassigned wm 0 0 (0/0/0) 0 
6 unassigned wm 0 0 (0/0/0) 0 
7 home wm 1377 - 7505 13.77GB (6129/0/0) 28879848 
2.輸入quit退出 
使用prtvtoc命令讀磁盤的VTOC 
# prtvtoc /dev/rdsk/c0t0d0s2 
。Dimensions(尺度)︰描述磁片的物理尺度 
。Flags︰描述分區表中的flags 
。partition︰描述分區表 
。flags︰00=wm/01=wu/10=rm/11=ru 
。First Sector︰定義Slice的起始扇區 
。Sector Count︰定義Slice的總共扇區 
。Last Sector︰定義Slice的結尾扇區 
。Mount Directory︰顯示當前的分區是否被掛接在某一目錄中 
fmthard命令 
使用prtvtoc命令,用戶可以儲存磁片的VTOC到一個檔案。這允許用戶在下列情況下使用fmthard命令來從新為磁片建立卷標。 
。在磁片上的VTOC被破壞掉了 
。因為偶然的原因導致磁片上的分區表變化了 
為了將prtvtoc命令的輸出儲存到其他磁片的一個檔案中,用戶可以在fmthard命令中使用datafile變量。 
Fmthard –s datafile /dev/rdsk/c#t#d#s2 
如果發生了上面描述的其中一種情況,並且先前保存了一個文件,用戶可以︰ 
1.運行format,選擇磁盤並且為默認的分區表設置磁盤卷標 
2.使用fmthard命令將datafile中的信息寫回磁盤 
# fmthard –s /vtoc/c1t3d0 /dev/rdsk/c1t3d0s2 
SMC是一個圖形界面的管理方式,可以很容易直觀的來使用,具體的使用過程在這裡就不在詳細說明了。說明一下SMC的啟動和停止的步驟。 
/etc/init.d/init.wbem status 查看運行狀態 
/etc/init.d/init.wbem stop 停止服務 
/etc/init.d/init.wbem start 啟動服務 
第四章 管理文件系統 
目標要求︰ 
描述solaris 文件系統 
創建一個新的UFS文件系統 
使用fsck來檢驗文件系統 
解決文件系統不連續 
監視文件系統的使用 
首先來描述一下solaris文件系統,solaris支持3種類型的文件系統︰ 
基於磁盤的文件系統 
分布式文件系統 
Pseudo文件系統 
基於磁盤的文件系統又可以分為︰ 
UFS︰在10的時候UFS可以達到TB。 
Hsfs︰支援CDROM的高密數據 
Pcfs︰支援DOS的FAT32檔案系統 
Udfs︰支援DVD和CDROM的通用檔案系統格式。 
分佈式檔案系統 
NFS︰我們通常所說的網路檔案系統共享模式。 
Pseudo檔案系統 
Pseudo檔案系統是一種基於內存的檔案系統模式。它包括︰ 
Tmpfs : 臨時檔案系統是基於內存而存在的。當機器重新啟動的時候它會創建新的數據,而將以前存儲的數據清除。 
Swapfs︰ 是用於swap管理的。 
Fdfs︰ 檔案描述器檔案系統又/dev/fd下的檔案描述器為打開的檔案提供一個明確的名字。 
Procfs︰進程檔案系統在/proc下為每一個營運的進程提供一個描述。 
Mntfs︰為本地已經mount的檔案系統提供一個只讀的訊息。 
Objfs︰kernel object 檔案系統。這個檔案系統是描述當前kernel已經加載的module的相關詳細訊息。存儲在/system/object。 
Devfs︰設備檔案系統。使用/devices下的訊息。 
Ctfs︰契約檔案系統。來源於/system/contract目錄。使用SMF跟蹤進程。 以便對進程的錯誤等等進行及時的處理。 
Solaris操作環境ufs檔案系統 
對於一個在Solaris操作環境中的用戶,一個檔案系統就是一個檔案和目錄的集合用於為系統和用戶儲存和組織數據 
對於作業系統,一個檔案系統就是透過分區和允許儲存和管理的數據的一個控制架構和佔用空間定義的數據塊的集合。 
Solaris操作環境將數據儲存在一個邏輯檔案體系中。這個檔案體系引用了透過檔案系統編號形成的Solaris目錄樹。 
每個ufs檔案系統在Solaris操作環境可以使用之前必須建立在磁片Slice上。在磁片Slice上建立檔案系統可以使Solaris操作環境儲存UNIX目錄和檔案。 
基本磁片架構 
磁片卷標(VTOC) 
磁片卷標包括在磁片上的分區表,並且定位在第一個磁片扇區。一個磁片分區可以包括一個通常為Solaris操作環境認為是有組織的目錄或者檔案的檔案系統。 
啟動塊 
bootstrap程式(bootblk)在下15個磁片扇區中查找。只有root檔案系統才有活動的啟動塊,雖然每個檔案系統都定位這個空間。 
超級塊 
檔案系統是透過超級塊進行描述的。超級塊包含在啟動塊後面的16個扇區中。超級塊是一個包含下列訊息的檔案系統訊息表︰ 
。數據塊編號 
。柱頭組編號 
。數據快和碎片的長度 
。硬體的描述(從卷標中匯出) 
。mount點的名字 
。檔案系統狀態標誌︰clean,stable,active,logging,unknown 
備份超級塊 
因為超級塊包含著臨界數據,所以他被複製到每一個柱頭組用來防止災難發生。當檔案系統被建立之後,這個工作就已經完成了。 
柱頭組 
透過在柱頭組中分割分區(每個組的最小預設長度是16個柱頭),可以改善磁片的訪問。檔案系統經常透過在一個柱頭組中訪問檔案數據來優化磁片。如果需要,檔案系統透過幾個柱頭組來儲存檔案。 
柱頭組塊 
柱頭組塊是一個描述柱頭組的表,包括︰ 
。inode編號 
檔案類型和訪問模式 
用戶的UID和GID 
檔案的大小 
連接數 
檔案最後一次的訪問和修改接點的時間 
分發給檔案使用的數據塊的總體數量 
兩種指標︰直接指標和間接指標 
直接指標︰ 
共有12個對數據塊直接訪問的直接指標,這12個直接指標可以為一直到96K位元組的容量的檔案直接引用數據塊。 
間接指標︰ 
有3中類型的間接指標︰ 
。單間接指標︰一個單間接指標查找一個檔案系統塊包含到數據塊的指標。這個檔案系統塊包含2048個8K位元組數據塊的附加位址(即2048個指標),可以指向一個附加的16M位元組的數據。 
。雙間接指標︰一個雙間接指標查找一個檔案系統塊包含單間接指標。每個間接指標查找一個檔案系統塊中包含的數據塊指標。雙間接指標可以指向的32G位元組的數據。 
。三倍間接指標︰一個三倍間接指標可以查找超過70T位元組的數據。可是,在一個ufs檔案系統中的最大的檔案容量是64T。 
在檔案系統上靜止的空間稱為數據塊,也叫做存儲塊 
數據塊是已經分發的,在預設的情況下,在8K位元組邏輯塊長度中,並且更進一步的分割成1K位元組的片段。 
對於一個普通檔案,數據塊包括檔案的內容。 
對於目錄,數據塊包括在那個目錄中的那些檔案的檔案名和他們的inode編號。 
建立一個ufs檔案系統 
1.Root權限,在一個重新分區後的磁片的第一個Slice上建立檔案系統 
# newfs /dev/rdsk/c1t3d0s7 
2.Newfs命令會在檢測正確的磁片Slice之前提問確認訊息。 
繼續則輸入y,中斷則輸入n 
newfs命令會顯示關於已經被建立的檔案系統的訊息 
第一行顯示的是磁片的基本表面數據的描述 
第二行顯示在這個Slice上已經建立的ufs檔案系統 
第三行和剩餘的行列出備份的超級塊的位置。 
3.在其他需要包含檔案系統的Slice上重複第一步和第二步 
Newfs儲存了1-10%的磁片空間。可以透過newfs m進行預先的調整minfree。(記得8的時候直接newfs的時候,minfree好像是1%) 
可以透過fstyp來看minfree的情況。 
Fstyp v /dev/dsk/c0t1d0s6 |head 
Newfs m 2 /dev/dsk/c0t1d0s6 
對於已經存在的檔案系統可以用 
Tunefs m 1 /dev/rdsk/c0t0d0s0來進行調整。 
使用fsck來解決檔案系統不連續的問題。 
可以採用交互模式進行fsck 
Fsck /dev/rdsk/c0t0d0s7 
相關的一些關於超級塊的修復等等在這裡就不在詳細描述了。(論壇中這樣的帖子很多) 
對於檔案使用情況的檢測,可以使用df du quot來檢視。 
Df 我們常用的參數有k ,h ,-o i F fstye 幾個參數。 
Du 我們常用的幾個參數是k s a 
Quot我們常用參數是a f。 
另外,以上的操作都可以透過SMC來完成。[url][/url]
(繼續閱讀...)
文章標籤

小宇哥 發表在 痞客邦 留言(1) 人氣(1,424)

  • 個人分類:Solaris
▲top
«1234»

個人資訊

小宇哥
暱稱:
小宇哥
分類:
生活綜合
好友:
累積中
地區:

熱門文章

  • (8,317)grub輸出到串口、kernel資訊輸出到串口、XEN輸出到串口
  • (8,056)GRUB基本使用說明
  • (3,888)德文時間表達 - Part2
  • (2,703)介紹Linux系統的開機流程
  • (2,497)德文時間表達 - Part1
  • (1,424)[轉載] Solaris 10 基礎介紹
  • (64)『雲端』與『姆指電』-自行製作 OpenSolaris 開機姆指碟

文章分類

toggle Python (1)
  • Python (1)
toggle Linux & Solaris筆記 (2)
  • Solaris (8)
  • Linux (6)
toggle Windows (1)
  • bash (1)
  • 德文學習 (2)
  • 空中英語教室 (15)
  • 未分類文章 (1)

最新文章

  • The Roma People - Few truly understand the culture of this proud people group [2/2]
  • The Roma People - Few truly understand the culture of this proud people group [1/2]
  • Car or Scooter? - Is owning a car worth the price? - [2/2]
  • Jug Bands - Homemade instruments can create some great music [2/2]
  • Jug Bands - Homemade instruments can create some great music [1/2]
  • Sammi Cheng - This star's journey out of darkness [3/3]
  • Sammi Cheng - This star's journey out of darkness [2/3]
  • The Summer Paralympics 2012 - Another global gathering of great athletes begins now [3/3]
  • The Summer Paralympics 2012 - Another global gathering of great athletes begins now [2/3]
  • The Summer Paralympics 2012 - Another global gathering of great athletes begins now [1/3]

最新留言

  • [20/05/15] blogjo63 於文章「[轉載] Solaris 10 基礎介紹...」留言:
    謝分享...
  • [15/12/29] Kai 於文章「德文時間表達 - Part1...」發表了一則私密留言
  • [11/12/07] 得妮 於文章「介紹Linux系統的開機流程...」留言:
    宇哥好帥...

動態訂閱

文章精選

文章搜尋

誰來我家

參觀人氣

  • 本日人氣:
  • 累積人氣: