Linuxシステム管理:ファイルシステムのマウントと自動フォーマットスクリプト


午前中はレッスン033の结课试験でしたが、033とはいえ、マゴの指导で033の难易度をはるかに超えました...午後、マウントを勉強して、小さな宿題を残して、スクリプトを書いて自動パーティションを実現しました.あまり話さないで、本題に入ります.
 
ファイルシステムの分類:
ext 2,ext 3,ext 4,ntfs,xfs,jfs,reiserfs,iso,swap,vfatなど.
こんなに多くのファイルシステムでは、プログラム設計時にIO識別ファイルシステムを考慮すると、異なるファイルシステムのIO識別プログラムを書くだけで、大きな仕事になります.
そのため、VFSはファイルシステムとユーザーの間にあり、ユーザーとファイルシステムを調整し、同じ呼び出しインタフェースを提供する中間層仮想ファイルシステムが現れた.
 
HDDの分類(インタフェース別):
1.ATA(IDE):パラレルポートはアダプタ変換信号133 M/sを必要とするパラレル2本の線が互いに干渉しやすく、一定の設計上限まではだめである.SATA:シリアルポート300 M/S 600 M/S 4 Gbpsは1本の線が干渉しないのでブロック3.SCSI:パラレルsamll computer system interfaceスループットが大きく、寿命が長く、回転速度が高く、エンタープライズクラスのアプリケーションアダプタ自体にコントローラがあり、CPUのように、制御I/Oを完全に実現でき、CPUの負担を大幅に低減し、外部記憶も可能である.SAS:シリアルSCSI:シリアルシミュレーションSCSI 5.USBには他にも
ファイルシステムとハードディスク(HDD)の概念があれば、パーティションの話題に入ることができます.
1つのHDDに最大4つのプライマリパーティションがあるのはなぜですか?これは、各ハードディスクの第1のブロック512バイトがそのブートブロックであるbootloaderであり、446バイトがオペレーティングシステムをブートするためのブートプログラムを格納するために使用され、残りの64バイトがパーティション情報、すなわち、よく知られているハードディスクパーティションテーブルMBRを格納するために使用され、各パーティションのパーティション情報は16バイトであるため、64/16=4のパーティションがプライマリパーティションまたは拡張パーティションとなる.
 
linuxのパーティションは4つのステップに分かれています.
まずfdisk:
ハードディスク(HDD)を/dev/sdaと仮定
コマンドラインで入力:fdisk/dev/sda
The number of cylinders for this disk is set to 15665.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):    // m

いくつかのリレーショナル・イベントのプロパティ
mヘルプdは、パーティションnを削除するために新しいパーティション+10 G分10 Gを作成するために使用され、柱面の大きさのため、p印刷パーティションを正確に分割することができず、既存のパーティションタイプtを表示してパーティションタイプwを調整し、ディスクに書いてqを後悔し、aを保存しないでアクティブパーティションを修正する
nを入力すると、開始柱面と終了柱面を選択するよう求められます.選択が完了したら、拡張パーティションを選択し、wを押して保存して終了します.
これで、第一歩は完成しました.
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        5235    41945715   8e  Linux LVM
/dev/sda3            5236        5300      522112+  82  Linux swap / Solaris
/dev/sda4            5301       15665    83256862+   5  Extended
/dev/sda5            5301       15665    83256831   83  Linux

ステップ2:パーティション・テーブル情報の再ロード
コマンド:
[root@server45 ~]# partprobe /dev/sda

ステップ3:パーティションのフォーマット
mkfs -t  ext2 /dev/sda5

または
mkfs.ext2 /dev/sda5

最後のステップ:マウント
mkdir /mnt/sda5
mount /dev/sda5 /mnt/sda5

補足:起動自動マウントを実現するには、/det/fstabファイルを編集します.
/dev/vol0/root          /                       ext3    defaults        1 1
/dev/vol0/home          /home                   ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=SWAP-sda3         swap                    swap    defaults        0 0

この中には6つのキーフィールドがあります.マウントするデバイス:/dev/sda 5,LABEL=NYDATA,UUID="2.マウントポイント:3.ファイルシステムタイプ:4.マウントオプション:複数のオプションがある場合、オプション間はカンマで区切られ、デフォルトdefaultsは複数のオプションを使用する場合、defaults,acl 5.ダンプ頻度:0はバックアップを行わず、1は毎日バックアップを示し、2は翌日バックアップがあまり使われないことを示します.ファイルシステムのセルフテスト順序:0-9 0セルフテストなし、1 POST直接セルフテスト(rootのみ)、2回目(home)、3.
 
自動フォーマットスクリプト:
#!/bin/bash
fdisk /dev/sda << End
n
e


w
End

このスクリプトでは、ハードディスク(HDD)に3つのプライマリパーティションがあると仮定し、最後のパーティションを拡張パーティションにフォーマットします.
では、このスクリプトを拡張します.ハードディスクが3つのプライマリパーティション、1つの拡張パーティションであると仮定します.スクリプトの役割は次のとおりです.
1.一度に10 GBの論理パーティションを自動的に作成し、MBRを再読み込みする.
2.新しく設立した論理新区をフォーマットする./mintディレクトリの下にこの新しいパーティション名のフォルダを作成し、このパーティションを自動的にマウントします.
#!bin/bash
fdisk /dev/sda << End
n

+10G
w
End
partprobe /dev/sda
F=`fdisk -l /dev/sda | tail -1 | cut -d/ -f3 | awk '{print $1}'`
mkfs /dev/$F
mkdir /mnt/$F
mnt /dev/$F /mnt/$F