Giới thiệu Block Device
Thiết bị khối - Block Device
Hãy tìm hiểu các quan niệm về đĩa của Gentoo Linux và Linux nói chung, bao
gồm các loại hệ tập tin Linux, phân vùng và block device. Khi bạn đã
quen với đĩa và hệ tập tin, bạn sẽ được hướng dẫn cách thiết lập phân
vùng và hệ tập tin cho Gentoo Linux.
Để bắt đầu, chúng tôi sẽ giới thiệu block device. Block device
nổi tiếng nhất có lẽ là những cái đại diện cho ổ đĩa IDE thứ nhất
trong hệ thống, tên là /dev/hda. Nếu bạn dùng ổ đĩa SCSI
hoặc SATA thì ổ đĩa đầu tiên là /dev/sda.
Các block device kể trên được dùng để giao tiếp với đĩa. Các chương
trình có thể dùng các block device này để thao tác với đĩa mà không
cần biết đĩa bạn là IDE, SCSI hay cái gì khác. Chương trình chỉ cần
xem đĩa như một loạt các khối liên tục,mỗi khối 512 byte, có thể truy
cập ngẫu nhiên.
Phân vùng (Partition)
Mặc dù theo lý thuyết chúng ta có thể sử dụng toàn bộ đĩa cứng làm một
vùng để chứa hệ thống Linux, Tuy nhiên trong thực tế thì không bao giờ
sử dụng như vậy, thay vào đó, ổ đĩa cứng sẽ được chia thành các thiết
bị khối nhỏ hơn, dễ quản lý hơn. Trên hệ thống x86, chúng được gọi là
các phân vùng - partition.
Thiết kế mô hình phân vùng
Mô hình phân vùng mặc định
Nếu bạn không thích tự xác định mô hình phân vùng cho hệ thống của
mình, bạn có thể dùng mô hình phân vùng chúng tôi dùng trong tài liệu
này:
Phân vùng NewWorld |
Phân vùng OldWorld |
Phân vùng Pegasos |
Phân vùng RS/6000 |
Hệ tập tin |
Kích thước |
Mô tả |
/dev/hda1
/dev/hda1
(Không áp dụng)
(Không áp dụng)
(Partition Map)
32k
Apple_partition_map
/dev/hda2
(Không áp dụng)
(Không áp dụng)
(Không áp dụng)
(bootstrap)
800k
Apple_Bootstrap
(Không áp dụng)
(Không áp dụng)
(Không áp dụng)
/dev/sda1
(PReP Boot)
800k
Loại 0x41
(Không áp dụng)
/dev/hda2 (Nếu dùng quik)
/dev/hda1
(Không cần)
ext2
32MB
Phân vùng khỏi động
/dev/hda3
/dev/hda2(/dev/hda3 nếu dùng quik)
/dev/hda2
/dev/sda2
(swap)
512M
Phân vùng Swap, Loại 0x82
/dev/hda4
/dev/hda3(/dev/hda4 nếu dùng quik)
/dev/hda3
/dev/sda3
ext3, xfs
Phần đĩa còn lại
Phân vùng gốc, Loại 0x83
Những phân vùng được đặt tên như sau: Apple_Driver43,
Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit,
Apple_Patches. Nếu bạn không định dùng MacOS 9, bạn có thể xóa
nó, vì MacOS X và Linux không cần chúng. Bạn có thể phải dùng
parted để xóa chúng hoặc xoá toàn bộ đĩa bằng cách khởi động
lại bảng phân vùng.
parted còn có thể thay đổi kích thước phân vùng. Trên CD Cài
đặt, có những patch để thay đổi kích thước hệ tập tin HFS+. Không may
là không thể thay đổi kích thước hệ tập tin HFS+ kèm journal, ngay cả
khi tắt journal trên Mac OS X. Mọi thứ bạn làm để thay đổi kích thước
phân vùng bằng parted, bạn phải tự chịu rủi ro! Nhớ sao lưu dữ liệu!
Nếu bạn muốn biết một phân vùng to cỡ nào, hoặc thậm chí cần bao nhiêu
phân vùng, hãy đọc tiếp. Nếu không hãy tiếp tục với Mặc định: Dùng mac-fdisk (Apple/IBM) để phân vùng đĩa
hoặc Thay thế: Dùng parted (đặc biệt là Pegasos)
để phân vùng đĩa.
Bao nhiêu và bao lớn?
Số lượng phân vùng phụ thuộc nhiều vào môi trường của bạn. Ví dụ, nếu
bạn có rất nhiều người dùng, bạn sẽ muốn dùng một phân vùng riêng cho
/home để tăng cường an ninh và dễ sao lưu. Nếu bạn cài
đặt Gentoo làm mail server, bạn nên dùng phân vùng riêng cho
/var vì thư từ được lưu trong /var. Một lựa
chọn hệ tập tin đúng sẽ tăng cường hiệu năng của hệ thống. Game server
thường dùng phân vùng riêng cho /opt vì hầu hết các game
server được cài vào đây. Lý do tách riêng phân vùng cũng tương tự như
với /home: an toàn và sao lưu. Bạn chắc chắn sẽ cần một
/usr to: nó không chỉ chứa một lượng lớn các ứng dụng,
cây Portage chiếm gần 500 MB, không tính mà nguồn cũng được lưu trong
đó.
Như bạn thấy, nó phụ thuộc rất nhiều vào mục đích của bạn. Phân
vùng/volume rời có những ưu điểm sau:
-
Bạn có thể chọn loại hệ tập tin thích hợp nhất cho phân vùng/volume
của bạn
-
Toàn hệ thống không thể nào hết vùng lưu trữ nếu như một công cụ hư
hỏng nào đó cứ liên tục ghi vào phân vùng/volume
-
Nếu cần thiết, có thể tiết kiệm thời gian khi kiểm tra hệ tập tin,
vì nhiều hệ tập tin có thể được kiểm tra đồng thời (mặc dù đây là ưu
điểm khi có nhiều đĩa hơn là khi dùng nhiều phân vùng)
-
Tăng cường an ninh bằng cách gắn kết các phân vùng dạng chỉ-đọc,
nosuid (bỏ qua bit setuid), noexec (không thực thi).
Tuy nhiên, dùng nhiều phân vùng có một bất lợi lớn: nếu cấu hình không
đúng, bạn có thể có một hệ thống quá dư đĩa ở một phân vùng và thiếu
đĩa trên phân vùng khác. Ngoài ra còn có giới hạn 15 phân vùng trên
SCSI và SATA.
Mặc định: Dùng mac-fdisk (Apple) để phân vùng đĩa
Ta sẽ tạo phân vùng dùng mac-fdisk:
# mac-fdisk /dev/hda
Trước hết hãy xóa những phân vùng cũ để có chỗ trống cho các phân vùng
Linux. Dùng d trong mac-fdisk để xóa những phân vùng đó.
Nó sẽ hỏi bạn số phân vùng cần xóa. Thường phân vùng đầu tiên trên
máy Apple (Apple_partition_map) không thể bị xóa.
Trên máy NewWorld, hãy tạo phân vùng Apple_Bootstrap bằng lệnh
b. Nó se hỏi bắt đầu ở khối nào. Nhập vào số phân vùng rỗng đầu
tiên, theo sau bởi p. Trong ví dụ là 2p.
Phân vùng này không phải là phân vùng "khởi động". Nó không hề
được dùng bởi Linux; bạn không cần đặt bất kỳ hệ tập tin nào vào đó và
bạn không bao giờ mount nó. Người dùng Apple không cần phân vùng bổ
sung cho /boot.
Giờ để tạo phân vùng swap, nhấn c. Một lần nữa mac-fdisk
sẽ hỏi bắt đầu phân vùng ở khối nào. Vì chúng ta đã dùng 2
trước đó để tạo phân vùng Apple_Bootstrap, chúng ta sẽ phải nhập
3p. Khi bạn được hỏi kích thước, hãy nhập 512M (hoặc bất
kỳ kích thước nào bạn muốn -- 512M chỉ là ví dụ). Khi được hỏi tên,
hãy nhập swap (bắt buộc).
Để tạo phân vùng gốc, nhập c, sau đó là 4p để chọn khối
bắt đầu phân vùng gốc. Khi được hỏi kích thước, nhập lại 4p.
mac-fdisk sẽ hiểu nó là "Dùng mọi không gian còn trống". Khi
được hỏi tên, hãy nhập root (bắt buộc).
Để hoàn tất, hãy ghi phân vùng vào bằng w và q để thoát
mac-fdisk.
Để chắc chắn mọi thứ đều ổn, bạn nên chạy mac-fdisk một lần nữa và
kiểm tra xem mọi phân vùng có chưa. Nếu bạn không thấy bất kỳ phân
vùng nào bạn tạo, hoặc những thay đổi bạn đã tạo ra, bạn nên khởi động
lại phân vùng bằng cách nhấn "i" trong mac-fdisk. Chú ý rằng nó sẽ tạo
lại partition map và xóa mọi phân vùng hiện có.
Bây giờ bạn đã tạo xong phân vùng, hãy tiếp tục với Tạo các hệ tập tin.
Thay thế: Dùng parted (hầu hết với Pegasos) để phân vùng đĩa
parted, Partition Editor, có thể xử lý các phân vùng HFS+ của
Mac OS và Mac OS X. Với công cụ này, bạn có thể thay đổi kích thước
phân vùng Mac của bạn và tạo khoảng trống cho các phân vùng Linux. Tuy
nhiên, ví dụ bên dưới mô tả cách phân vùng chỉ cho Pegasos.
Để bắt đầu, hãy khởi động parted:
# parted /dev/hda
Nếu ổ đĩa chưa được phân vùng, hãy chạy mklabel amiga để tạo
disklabel cho đĩa.
Bạn có thể gõ print mọi lúc trong parted để xem bảng phân vùng
hiện tại. Nếu lúc nào đó bạn thay đổi ý định hoặc phạm sai lầm, bạn có thể
nhấn Ctrl-c để ngừng parted.
Nếu bạn còn định cài đặt MorphOS trên Pegasos, hãy tạo hệ tập tin
affs1 tên "BI0" (BI không) ở đầu đĩa. 32MB là quá đủ để chứa kernel
MorphOS. Nếu bạn có Pegasos I hoặc định dùng reiserfs hoặc xfs, bạn sẽ
cần chứa Linux kernel trên phân vùng này (Pegasos II có thể khởi động
từ ext2/ext3 hoặc affs1). Để tạo phân vùng, chạy mkpart primary affs1 START
END trong đó START và END được thay bằng vùng
megabyte (vd 0 32 tạo phân vùng 32 MB bắt đầu tại 0MB và kết
thúc ở 325MB).
Bạn cần tạo hai phân vùng Linux, một phân vùng gốc cho mọi chương
trình, và một phân vùng swap. Để tạo phân vùng gốc, bạn phải quyết
định phân vùng cần dùng. Các tùy chọn có thể là ext2, ext3, reiserfs
và xfs. Trừ khi bạn biết bạn làm gì, còn không thì dùng ext3. Hãy chạy
mkpart primary ext3 START END để tạo phân vùng ext3. Cũng vậy,
hãy thay START và END bắt điểm bắt đầu và kết thúc phân
vùng, tính theo Megabyte.
Bạn nên tạo phân vùng swap có kích thước tương đương hai lần lượng RAM
trên máy tính của bạn. Bạn có thể sẽ gặp rắc rối với phân vùng swap
nhỏ hơn trừ khi bạn định chạy nhiều ứng dụng cùng lúc (mặc dù ít nhất
là 512MB). Để tạo phân vùng swap, chạy mkpart primary linux-swap
START END.
Hãy ghi ra số minor của partition vì bạn sẽ cần nó trong quá trình cài
đặt. Để hiển thị số minor, chạy print. Các ổ đĩa được truy cập
thông qua /dev/hdaX trong đó X thay bằng số minor của
partition.
Khi hoàn tất, gõ quit để thoát parted.
Tạo các hệ tập tin
Giới thiệu
Sau khi đã tạo phân vùng, bạn cần cài hệ tập tin lên đó. Nếu bạn không
quan tâm loại hệ tập tin cần chọn và sẵn sàng dùng loại hệ tập tin mặc
định như trong sách này thì bạn có thể tiếp tục với Cài hệ tập tin lên phân vùng. Nếu
không hãy đọc tiếp để tìm hiểu về những loại phân vùng được hỗ trợ...
Loại hệ tập tin?
Có nhiều hệ tập tin. Ext2, ext3, ReiserFS và XFS hoạt động ổn định
trên PPC.
ext2 là hệ tập tin cho Linux, nhưng nó không có metadata
journaling, nghĩa là việc kiểm tra hệ tập tin lúc khởi động có thể tốn
nhiều thời gian. Có nhiều hệ tập tin mới hơn với tính năng journal để
chọn lựa, tốn ít thời gian kiểm tra hơn so với những loại không có
tính năng journal. Các hệ tập tin journal giúp tránh đợi lâu lúc khởi
động khi hệ tập tin bạn không ổn định.
ext3 là phiên bản ext2 với tính năng journal, giúp phục hồi
nhanh kèm theo những đặc điểm khác của tính năng journal như full
data, ordered data journaling. ext3 là một lựa chọn tốt và an toàn. Nó
còn có tùy chọn hashed b-tree index giúp tăng hiệu năng trong hầu hết
trường hợp. Bạn có thể bật index bằng cách thêm -O dir_index
vào lệnh mke2fs. Nói tóm lại, ext3 là một lựa chọn xuất sắc.
ReiserFS là hệ tập tin dựa trên B*-tree có hiệu năng tốt và
vượt xa cả ext2 và ext3 khi xử lý các tập tin nhỏ (nhỏ hơn 4k), thường
vượt gấp 10-15 lần. ReiserFS còn hoạt động tốt trong nhiều điều kiện
khác nhau và hỗ trợ metada journal. Với các kernel 2.4.18 trở đi,
ReiserFS là lựa chọn tốt để sử dụng hằng ngày cũng như những trường
hợp cực kỳ như các hệ tập tin lớn, hệ tập tin chứa nhiều tập tin nhỏ,
những tập tin cực lớn và thư mục chứa hàng ngàn tập tin.
XFS là hệ tập tin hỗ trợ metadata journal và một tập tin năng
mạnh mẽ, được tối ưu để thích hợp với nhiều điều kiện khác nhau. Chúng
tôi chỉ khuyến khích dùng loại hệ tập tin này trên Linux với hệ thống
SCSI và/hoặc fibre channel kèm bộ nguồn bảo đảm không bị ngắt. Vì XFS
cache in-transit data trong bộ nhớ một cách đáng kể, những chương
trình không được thiết kế phù hợp (những chương trình không để ý các
phòng ngừa khi ghi tập tin vào đĩa - có vài chương trình như vậy) có
thể làm mất một lượng dữ liệu lớn nếu hệ thống bị ngừng đột ngột.
Cài hệ tập tin lên phân vùng
Để tạo hệ tập tin trên phân vùng hoặc volume, cần có các công cụ cho
mỗi loại hệ tập tin:
Hệ tập tin |
Lệnh tạo |
ext2
mkfs.ext2
ext3
mkfs.ext2 -j
reiserfs
mkfs.reiserfs
xfs
mkfs.xfs
Ví dụ, để định dạng phân vùng gốc (/dev/hda4 trong ví dụ
này) dùng loại ext3 (như trong ví dụ), bạn dùng:
# mkfs.ext2 -j /dev/hda4
Bây giờ tạo hệ tập tin cho những phân vùng của bạn (hoặc các logical
volume).
Trên máy PegasosII, phân vùng chứa kernel phải là ext2 hoặc ext3. Máy
NewWorld có thể khởi động từ ext2, ext3, XFS, ReiserFS và thậm chí
HFS/HFS+. Máy OldWorld khởi động với BootX, kernel phải đặt trong phân
vùng HFS, sẽ được thực hiện khi cấu hình bootloader.
Kích hoạt phân vùng Swap
mkswap là lệnh để khởi tạo phân vùng swap:
# mkswap /dev/hda3
Để kích hoạt sử dụng phân vùng swap, dùng swapon:
# swapon /dev/hda3
Giờ hãy tạo và kích hoạt phân vùng swap của bạn.
Mount (Gắn kết)
Các phân vùng của bạn đã được tạo và định dạng xong. Giờ là lúc để gắn
các phân vùng này vào hệ thống. Hãy dùng lệnh mount. Đừng quên
tạo những thư mục mount cần thiết trước khi mount các phân vùng bạn đã
tạo vào. Như trong ví dụ, chúng tôi sẽ mount phân vùng gốc và phân
vùng boot:
# mkdir /mnt/gentoo
# mount /dev/hda4 /mnt/gentoo
Nếu bạn muốn /tmp nằm trên một phân vùng riêng, hãy đảm
bảo quyền truy cập của nó sau khi mount: chmod 1777
/mnt/gentoo/tmp. Điều này cũng cần được thực hiện với
/var/tmp.
Chúng ta cũng sẽ mount hệ tập tin proc (một hệ tập tin ảo để giao tiếp
với kernel) vào /proc. Nhưng trước hết hãy cho các tập
tin vào phân vùng.
Hãy tiếp tục với Cài đặt các tập tin
cài đặt Gentoo.