Life would be so much simple if we don't care so much

Posts tagged ‘fdisk’

Linux – tạo partition dùng fdisk

Ở Linux, lệnh fdisk được sử dụng để quản lý các partition của ổ cứng. Với fdisk thì có thể tạo và xoá các phân vùng ổ đĩa, cũng như check được thông tin các partition.

Ở bài này, sẽ giải thích về cách tạo partition trên extended hard-disk.

1. Tạo phân vùng mới
Tạo partition bằng cách run fdisk và pass vào parameter là tên của device (ổ cứng) muốn tạo partition

eg1

# fdisk /dev/sdb
command fdisk là command dạng menu format
Sau khi run command, từ menu trong khi vừa chọn 1 số xử lý, việc tạo partition sẽ được tiếp tục.
Nếu nhập vào「m」thì sẽ hiển thị help

eg2 (fyi EN)
[root@70c8dcd1d9f7 /]# fdisk /dev/vda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help):

(JPN)

# fdisk /dev/sdb
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

コマンド (m でヘルプ): m  ← input vào m
コマンドの動作
a ブート可能フラグをつける
b bsd ディスクラベルを編集する
c dos 互換フラグをつける
d 領域を削除する
l 既知の領域タイプをリスト表示する
m このメニューを表示する
n 新たに領域を作成する
o 新たに空の DOS 領域テーブルを作成する
p 領域テーブルを表示する
q 変更を保存せずに終了する
s 空の Sun ディスクラベルを作成する
t 領域のシステム ID を変更する
u 表示/項目ユニットを変更する
v 領域テーブルを照合する
w テーブルをディスクに書き込み、終了する
x 特別な機能 (エキスパート専用)

(fyi EN)
Command (m for help): m ← input vào m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition’s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

***Note
Có message khi thực thị của command nhưng dùng w để write nội dung thay đổi.
Cho tới khi nội dung thay đổi được write thì mọi thay đổi sẽ không được apply.

Khi tạo phân vùng mới thì cũng như help command, input vào n

コマンド (m でヘルプ): n  ← input vào n
コマンドアクション
e 拡張
p 基本領域 (1-4)

(fyi EN)
Command (m for help): n ← input vào n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended

Muốn tạo phân vùng extended hay là phân vùng chính thì chọn bằng cách input vào.

***Note
Chỉ có thể chia tới 4 partition trên ổ cứng. (vượt quá 4 là không thể)
Khi chia partition thì sẽ có phân vùng chính hoặc phân vùng mở rộng, nếu chia phân vùng mở rộng thì ứng với 1 ổ cứng chỉ có thể tạo được 1 phân vùng mở rộng. Nếu tạo 4 phần của partition đều là phân vùng chính, thì sẽ không tạo được phân vùng mở rộng.
Với phân vùng mở rộng, do có thể tạo được các partition logic nên trường hợp cần nhiều partition thì sẽ rất cần tới phân vùng mở rộng.

Số lượng partition tối đa

IDE :63 (primary 3 + logic 60)
SATA:15 (primary3 + logic 12)
SCSI:15 (primary3 + logic 12)

Ở đây, chúng ta sẽ tạo thử phân vùng primary 1GB

コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p ← Lần này chúng ta sẽ tạo phân vùng primary nên sẽ input vào p

領域番号 (1-4): 1 ← Do lần đầu tiên tạo partition trên disk này nên sẽ nhập 1

最初 シリンダ (1-652, default 1): 1 ← Đây là partition đầu tiên trên disk nên sẽ input 1 cho head cylinder
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-652, default 652): +1024M
※ Ở đây, với 1 partition thì cần chỉ định size đảm bảo cho ổ cứng. Lần này là chia 1 GB

Input vào p thì có thể check được trạng thái partition hiện tại

コマンド (m でヘルプ): p  ← input vào p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sdb1 1 125 1004031 83 Linux ← partition mới được tạo

2. Thay đổi systemID của phân vùng

Ở đây chúng ta sẽ quyết định loại file system nào sẽ apply khi chia partition mới.
Nếu định dùng file system ext3 và ext4 thì không cần phải làm việc này.
Chẳng hạn như khi thay đổi vùng mở rộng (Extended area) hoặc phân vùng dùng cho LVM … thì ở đây chúng ta sẽ thay đổi system ID.
Để check danh sách các phân vùng system ID thì presss l (chữ nhỏ của L)

(JPN)
マンド (m でヘルプ): l ← input l

0 空 24 NEC DOS 81 Minix / 古い bf Solaris
1 FAT12 39 Plan 9 82 Linux スワッ c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 隠し C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux 拡張領 c7 Syrinx
5 拡張領域

Tham khảo nguồn

Advertisements

Linux – check device name của hard-disk

Ở Linux, lệnh fdisk được sử dụng để quản lý các partition của ổ cứng. Với fdisk thì có thể tạo và xoá các phân vùng ổ đĩa, cũng như check được thông tin các partition.

Ở bài này, sẽ giải thích về cách tạo partition trên extended hard-disk. Ngoài ra, cũng sẽ chỉ ra cách check device name của hard-disk và cách kiểm tra thông tin partition.

1. Format của lệnh fdisk

Lệnh fdisk có thể sử dụng để tạo và xoá các partition của hard-disk hoặc là check thông tin partition của ổ cứng.

Format của fdisk
fdisk [option] [device file]

Các option thường dùng
-l (chữ nhỏ của L) liệt kê danh sách partition table của device được chỉ định. Nếu không chỉ định device nào thì các partition (nếu có) trong /proc/partitions sẽ được liệt kê.

Nếu run fdisk và gắn thêm option -l thì sẽ confirm được thông tin các partition. Nếu chỉ định device name mà ko kèm option -l thì màn hình sẽ được switch sang màn hình menu dành cho việc khởi tạo partition.
Device file sẽ nằm ở dưới thư mục /dev. Tên device của extended hard-disk thì có thể confirm bằng cách run fdisk với option -l, hoặc check với lệnh dmesg, nếu là IDE disk thì có device name là dev/hd[a-h], nếu là disk SCSI, SATA disk thì sẽ có device name là /dev/sd[a-p]

2. Check device name của extended hard-disk

Để tạo partition khi run lệnh fdisk cần phải pass vào device name của extended hard-disk

Run fdisk với option -l sẽ hiển thị thông tin partion của hard-disk mà system đang nhận biết được.
Nếu check cấu trúc của hard-disk trước khi được mở rộng thì sẽ dễ phân biệt được phần extend thêm vào sau này.

# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes   ←device name của disk1 là /dev/sda
255 heads, 63 sectors/track, 1044 cylinders
Units = số vòng quay 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1044 8281507+ 8e Linux LVM

Disk /dev/sdb: 5368 MB, 5368709120 bytes   ←device name của disk2 là /dev/sdb
255 heads, 63 sectors/track, 652 cylinders
Units = số vòng quay 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn’t contain a valid partition table

Từ kết quả của lệnh fdisk sẽ biết được device name của các hard-disk đang được kết nối là /dev/sda và /dev/sdb
Trước khi run lệnh này, đang thêm vào 5GB ổ cứng. Từ size sẽ biết được tên của thiết bị của extended hard-disk.
Nếu thông tin partition không có gì thì cũng sẽ biết được hard-disk đã được add thêm vào.
Thực tế là khi tạo partition thì cần phải có device name.

Sử dụng fdisk -l trường hợp không thể hiển thị được gì.
Nếu dùng fdisk -l mà không hiển thị được gì thì cũng có thể dùng dmesg, cũng là 1 command dùng để check info.

# dmesg | grep hd
ide0: BM-DMA at 0x10c0-0x10c7, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x10c8-0x10cf, BIOS settings: hdc:DMA, hdd:pio
hdc: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
SCSI device sda: 16777216 512-byte hdwr sectors (8590 MB)   ←device name = sda
SCSI device sda: 16777216 512-byte hdwr sectors (8590 MB)   ←device name = sda
SCSI device sdb: 10485760 512-byte hdwr sectors (5369 MB)   ←device name = sdb, size ~ 5GB
SCSI device sdb: 10485760 512-byte hdwr sectors (5369 MB)   ←device name = sdb, size ~ 5GB
hdc: ATAPI 1X DVD-ROM DVD-R-RAM CD-R/RW drive, 32kB Cache, UDMA(33)
hdc: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hdc: drive_cmd: error=0x04 { AbortedCommand }

Hiện tại, tên thiết bị đang được sử dụng thì nếu dùng lệnh df có thể hiển thị được. Cái mà chưa sử dụng là tên device của hard disk đã add thêm

# df
Filesystem 1K-block use can user use% vị trí mount
/dev/mapper/VolGroup00-LogVol00
5967432 4154316 1505152 74% /
/dev/sda1 101086 12279 83588 13% /boot
↑ Hiện tại tên device của ổ cứng đang được dùng là /dev/sda (hiển thị số đại diện cho partition)
tmpfs 517552 0 517552 0% /dev/shm

3. Thông tin partition của hard disk

Run fdisk -l và pass vào thông tin device name

# fdisk -l /dev/sda

Disk /dev/sda: 8589 MB, 8589934592 bytes ← size ổ cứng của sda
255 heads, 63 sectors/track, 1044 cylinders Units = số vòng quay of 16065 * 512 = 8225280 bytes
↑ Header, number of sectors per track, number of cylinders

Disk Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux ← Partition 1
/dev/sda2 14 1044 8281507+ 8e Linux LVM ← Partition 2
Từ kết quả của command có thể biết được size ổ cứng của /dev/sda
Ngoài ra còn biết được header, number of sectors per track, number of cylinders

Mỗi partition thì sẽ tương ứng 1 tên thiết bị (device name). Trường hợp này, device name của partition 1 là /dev/sda1, device name của partition 2 là /dev/sda2

Tham khảo nguồn

Linux – quản lý ổ đĩa 

Ở bài này sẽ mô tả về sử dụng hard disk trên Linux

Partition là gì?

Có thể chia ổ cứng (hard disk) ra thành nhiều các phân vùng logic (partition) và mỗi partition đó sẽ được sử dụng như 1 hard disk.
Nếu phân chia partition theo mục đích chẳng hạn như tách partition chuyên dụng cho data, partition chuyên dụng cho system…thì sẽ có nhiều lợi điểm khác nhau như việc backup và update system sẽ trở nên dễ dàng hơn, thậm chí khi data bị overflow thì cũng không dẫn đến kết nối hệ thống bị đình chỉ, hoặc có thể cứu được data trong trường hợp hệ thống bị crash…
Điểm bất lợi là việc phải tính toán trước khả năng disk (kích thước) cho cấu trúc hệ thống thì khá là phức tạp và cả việc cập nhật sau đó cũng là vấn đề khó khăn.
Trên Linux để tạo các partition trên ổ cứng thì có thể sử dụng lệnh fdisk

File system là gì?

File system là cơ chế để quản lý các thuộc tính dữ liệu như file name, date update… được lưu trữ trong vùng nhớ của ổ cứng.
File system có nhiều loại khác nhau, chẳng hạn ở Windows thì có định dạng FAT32 và NTFS, trên Linux thì có ext2, ext3, gần đây thì có ext4, trên CD thì có iso9660 và rất nhiều loại định dạng dữ liệu khác nữa.
Tuỳ thuộc vào file hệ thống được sử dụng mà kích thước tối đa của 1 file, số ký tự tên file, hiệu quả truy cập, security, file compression… có rất nhiều chức năng khác nhau nhưng khi sử dụng hard disk thì tối thiểu trên partition cần thiết phải tạo các file hệ thống.
Ở Linux, để tạo các file hệ thống trên partition thì có thể dùng command mkfs

Mount là gì?

Cấu trúc của directory trong Linux được gọi là /root directory tương tự như cấu trúc tree bắt đầu từ trên top(root) của directory. Khi thiết bị lưu trữ kết nối với máy tính thì chúng ta sẽ làm cho thiết bị lưu trữ này thực hiện chức năng như 1 directory nằm trên cấu trúc tree của directory hệ thống.
Mount tức là việc thiết bị lưu trữ kết nối với máy đăng ký truy cập vào 1 điểm trên cấu trúc tree directory này.
Để mount file system thì sử dụng command mount

***Note
Khi mount disk vào bên trong directory đã có content thì content cũng sẽ bị replace cho dù directory đã được mount vào là /directory, lúc này thì sẽ không thể đọc hoặc ghi nội dung bên trong directory trước đó được nữa.

***Note
Về cấu trúc directory của Linux

Cấu trúc directory của Linux được tạo ra theo chuẩn được gọi là FHS(Filesystem Hierarchy Standard), cấu trúc này được mô tả như dưới đây.

Root directory

Ở directory nào đặt vào những file như thế nào để chuẩn hoá, rất nhiều các bản phân phối mà file đã được sắp xếp sẵn theo chuẩn.
Để biết được với mỗi directory thì sẽ đặt những file như thế nào thì có thể xem mô tả dưới đây.

/usr các loại file mà user install độc lập /có 1 cấu trúc tương tự trực tiếp bên dưới
/bin các chương trình của general user
/boot các file liên quan đến khởi động hệ thống
/dev directory, device file
/etc file setting
/lib các library common được sử dụng bởi nhiều chương trình trong hệ thống
/var các data thay đổi thường xuyên (log, db, web …)
/sbin chương trình quản lý system
/tmp file tạm

Tham khảo nguồn