B Một hệ thống file là một cây thư mục bao gồm một thư mục gốc /, các thư mục con và các file chứa trong đó.. Một số hệ thống file JFS2, XFS, ext4 dùng đơn vị lưu trữ được cấp khi lưu d
Trang 1CHIA SẼ KIẾN THỨC TIN
HỌC
DỰ ÁN LINUX TOÀN TẬP DỰ ÁN LPI TOÀN TẬP IT JOBS SITEMAP
SUPPORT
GÓC LINUX UNIX GÓC TÀI LIỆU
File và hệ thống file
trên Linux
By admin On August 12, 2013
GIT – I. Hệ thống file
Có hai cách hiểu tùy theo ngữ cảnh:
A Một hệ thống file (file system) là một kiểu lưu
trữ và tổ chức các file và dữ liệu trong file để
dễ tìm kiếm và truy cập. Hiện tại trong Linux phổ
biến hai kiểu hệ thống file là ext3 và ext4.
B Một hệ thống file là một cây thư mục bao gồm
một thư mục gốc (/), các thư mục con và các file
chứa trong đó
Trên mỗi partition chỉ có thể có một kiểu hệ thống
file (được tạo ra khi format: ext3, ext4, fat, ntfs,
…). Nhưng một cây thư mục có thể đặt trên nhiều
partition: thư mục gốc / đặt ở partition sda2, thư
mục /home đặt ở sda5, v.v… tùy ý người dùng
chọn khi cài đặt
FACEBOOK LIKE
Facebook Like
RSS GÓCIT
RSS Posts
ĐĂNG KÝ NHẬN BÀI VIẾT MỚI
Nhập địa chỉ email của bạn để đăng
ký nhận được thông báo bài viết mới qua email
Email Address
ĐĂNG KÍ
BÀI MỚI
BÀI XEM NHIỀU BÀI NGẪU NHIÊN
1
2 3
4 5
FSHARE
Adding and Troubleshooting Static Routes on Red Hat based Linux Distributions
[Script] Quản trị server với Python [ Phần 2]
[Script] Quản trị server với Python [ Phần 1]
Căn bản Python [ Phần 3 ]
Căn bản Python [ Phần 2 ]
Trang 2Hệ thống file ổ cứng (Disk file systems):
FAT, NTFS, ext2/3/4, HFS, …Riêng file
trong Compact Disk hoặc DVD lưu theo hệ
thống file ISO 9660 hoặc UDF. Từ Linux 2.6
và Windows Vista, đĩa DVD có thể ghi theo
format Mount Rainier (mở rộng của UDF)
như đĩa mềm
Hệ thống file flash (Flash file systems): tối
ưu cho ghi vào bộ nhớ flash (ổ USB)
Hệ thống file mạng (Network file systems):
SMB, NFS
Hệ thống file ổ cứng mạng (Shared disk file
systems): dùng truy cập các file lưu trên các
cụm ổ cứng trong mạng (SAN). Thuộc loại
này có GFS của Red Hat, GPFS của IBM
và nhiều thứ nữa …
Đơn vị lưu trữ file trên ổ cứng (và các thiết bị
lưu trữ quay hình tròn?)
Sector (cung từ): là đơn vị lưu trữ vật lý
nhỏ nhất trên ổ cứng. Dung lượng một
sector từ 512B đến 1,2 hoặc 4KiB (cấp số
mũ 2 của 8bit)
Cluster (nhóm cung từ): khi lưu file nếu
Trang 3quản lý nhiều, làm chậm quá trình đọc, ghi
Cluster là đơn vị lưu trữ nhỏ nhất để lưu file
trên ổ cứng gồm từ 1128 sector liên tục.
Đơn vị lưu trữ file logic
Block: là đơn vị lưu trữ logic nhỏ nhất
được cấp khi lưu dữ liệu. Dung lượng một
block (block size) tùy theo: với hệ thống file
ext3, một block có thể là 1,2 hoặc 4 KB
Block dùng cho cả các thiết bị lưu trữ quay
hình tròn (ổ cứng, CD, đĩa mềm) lẫn các
thiết bị lưu trữ không quay (ổ USB, băng
từ). Tức là nó là đơn vị lưu trữ logic
Extent: là một nhóm block liên tục. Một số
hệ thống file (JFS2, XFS, ext4) dùng đơn vị
lưu trữ được cấp khi lưu dữ liệu không
phải là block mà là một nhóm block (gọi
là một extent). Dữ liệu được lưu đủ một
extent trong bộ nhớ trước khi ghi vào ổ
cứng, do đó tốc độ ghi và đọc nhanh hơn
và cũng giảm được lượng metadata cần
quản lý. Nếu không dùng extent, metadata
được cập nhật cho từng block dữ liệu, khi
dùng extent, metadata chỉ cập nhật cho
từng nhóm block. Ví dụ ext4 ghép các block
4KB thành extent tới 128MB
Superbloc:
Superblock gồm các thông tin chung về một hệ
thống file: dung lượng, dung lượng block, các
block đã ghi và còn trống, vị trí và dung lượng
bảng inode, …
Nếu superblock bị hỏng thì hệ thống file không
mount được và do đó không truy cập được. Vì vậy
hệ điều hành định kỳ sẽ tạo các bản backup của
superblock ngoài bản chính (primary superblock)
Trang 4i superblock
dumpe2fs 1.41.11 (14Mar2010)
Primary superblock at 0, Group descriptors at 11
Backup superblock at 32768, Group descriptors at
3276932769
Backup superblock at 98304, Group descriptors at
9830598305
Nội dung chi tiết của superblock(ví dụ với
partition /dev/sda2):
dumpe2fs h /dev/sda2
Nội dung chi tiết của toàn bộ hệ thống file trên
một partition /dev/sda2, xuất ra thành file
sda2.txt cho dễ đọc:
dumpe2fs /dev/sda2 > sda2.txt
Hai lệnh trên đều chạy với quyền root (với Ubuntu
thêm sudo vào đầu).
II. Cây thư mục
II.1inode
inode là một cấu trúc dữ liệu chứa các metadata
của mỗi file, thư mục trong các hệ thống file Linux
Trong một inode có các metadata sau:
Dung lượng file tính bằng bytes
Device ID : mã số thiết bị lưu file
User ID : mã số chủ nhân của file
Group ID.: mã số nhóm của chủ file
File mode : gồm kiểu file và các quyền truy
Trang 5Hệ thống phụ và các cờ hạn chế quyền truy
cập file
Timestamps: các mốc thời gian khi: bản
thân inode bị thay đổi (ctime), nội dung file
thay đổi (mtime) và lần truy cập mới nhất
(atime)
Link count : số lượng hard links trỏ đến
inode
Các con trỏ (từ 1115 con trỏ) chỉ đến các
blocks trên ổ cứng dùng lưu nội dung file
Theo các con trỏ này mới biết file nằm ở
đâu để đọc nội dung
Có hai chú ý trong nội dung inode:
1. Inode không chứa tên file, thư mục
2. Các con trỏ là thành phần quan trọng
nhất: nó cho biết địa chỉ các block lưu
nội dung file và tìm đến các block đó có
thể truy cập được nội dung file.
Mỗi inode có một số inode, tạo thành một bảng
inode ghi ở một khu vực riêng trên ổ cứng.
Chú ý là trong inode không có tên file. Tên file
được lưu trong thư mục cùng với số inode của nó
(xem lệnh ls i dưới đây)
Khi truy cập đến một file, hệ điều hành từ tên file
tìm ra số inode rồi dùng số inode để đọc nội dung
inode, từ đó theo các con trỏ để đọc nội dung file
Trang 6mục /home/zxc. Lệnh thứ hai ls i liệt kê các số
inode của các đối tượng trong thư mục: thư mục
DATA có số inode là 5, file icsw.png có số inode là
430555
Lệnh stat <path/filename> cho biết chi tiết về nội
dung inode:
[zxc@Man2010 ~]$ stat
/home/zxc/Downloads/ND145CP.rtf
File: `/home/zxc/Downloads/ND145CP.rtf’
Size: 68738 Blocks: 144 IO Block: 4096 regular file
Device: 80ah/2058d Inode: 151395 Links: 1
Access: (0644/rwr–r–) Uid: (10001/ zxc) Gid:
(10001/ zxc)
Access: 20100325 14:34:29.000000000 +0700
Modify: 20100325 14:34:23.000000000 +0700
Change: 20100325 14:34:23.000000000 +0700
Lệnh stat có nhiều option (xem stat –help), ví dụ
hai lệnh sau cho biết số bloc dùng lưu file và dung
lượng một block (đơn vị byte):
[zxc@Man2010 ~]$ stat c %b
Trang 7144
[zxc@Man2010 ~]$ stat c %B
/home/zxc/Downloads/ND145CP.rtf
512
III. Tên file và hard link, soft link
Trong một hệ thống file, mỗi file có một và chỉ
một inode, mỗi inode cũng chỉ có một số inode
duy nhất. Nhưng một file có thể có nhiều tên
file tùy theo số hard link trỏ đến nó.
Một hard link là một liên kết (link) trỏ đến vị trí
lưu một file trên ổ cứng:
Nếu đổi tên, xóa hoặc di chuyển file gốc
sang thư mục khác, hard link vẫn mở được
file đó vì nó vẫn trỏ đến vị trí lưu file cố định
trên ổ cứng
Tên hard link có thể khác tên file gốc, hard
link có thể nằm trong một thư mục khác với
thư mục của file gốc. Vì vậy một file có thể
có nhiều tên file nằm ở các thư mục khác
nhau. Khi truy cập vào hard link (ví dụ nhấn
chuột) sẽ truy cập đến file (mở hoặc chạy)
Nếu đồng thời mở một file từ các hard link
và tên file gốc, khi sửa ở một bản, các bản
khác cũng sẽ thay đổi theo sau khi refresh
hoặc reload vì thực chất là sửa trên cùng
một file
Nếu xóa hard link hoặc xóa tên file gốc
nhưng còn một hard link, file vẫn không
bị xóa. File chỉ bị xóa khi không còn cái
gì trỏ đến vị trí lưu nó. Như vậy muốn xóa
một file, phải xóa tên file và tất cả các
hard link của nó.
Hard link không tạo được với thư mục và
Trang 8partition khác
Hard link được tạo bởi lệnh ln: ln <path/tên
file> <tên hard link>.
Soft link (còn gọi là Symbolic link hoặc symlink) là
một liên kết tạo một đường dẫn khác đến thư
mục hoặc file gốc.
Ví dụ file gốc passwd có đường dẫn là
/etc/passwd. Trong thư mục /home/zxc tạo
một soft link đặt tên là “mật khẩu” trỏ đến file
đó. Như vậy đường dẫn mới đến file
/etc/passwd là /home/zxc/mật khẩu. Khi
truy cập đến một trong hai đường dẫn trên
đều là truy cập đến file passwd
Nếu đổi tên, xóa hoặc chuyển file gốc sang
thư mục khác thì soft link mất tác dụng,
không truy cập được đến file đó nữa. Khác
với hard link, khi xóa file có soft link, file bị
xóa thật
Có thể tạo soft link với thư mục và file nằm
trên partition khác
Soft link tạo bằng lệnh ln s <path/tên file>
<tên soft link>
Tóm lại thì tên file, hardlink, softlink giống và
khác nhau cái gì?
Tên file giống như tên khai sinh và tên các hardlink
giống như các bí danh (tên gọi khác). Chúng đều
tham chiếu trực tiếp tới một số inode cụ thể và
từ đó tới inode trỏ tới các block đang lưu file trên ổ
cứng. Đi từ tên file hay hardlink đều thông qua số
inode để đến cùng một chỗ trên ổ cứng
Softlink không tham chiếu trực tiếp đến số
inode mà tham chiếu đến “cấp trung gian” là
tên file (kèm theo đường dẫn ở một thư mục cụ
thể), từ tên file mới đến số inode rồi inode để truy
cập vào file. Vì vậy nếu “cấp trung gian” là tên file
SEARCH
HỎI ĐÁP IT JOBS
Trang 9vơ” không truy cập được vào nội dung file nữa
Hardlink chỉ tạo được với file nằm trên cùng một
partition, không tạo được với thư mục hoặc với file
nằm trên partition khác
Softlink tạo được với thư mục và tạo được với thư
mục, file nằm trên partition khác
IV. Hệ thống file Linux có bị phân mảnh
không?
Về nguyên tắc thì có, nhưng phân mảnh không
đáng kể và không ảnh hưởng lớn đến tốc độ truy
cập file. Người dùng bình thường không cần quan
tâm đến vấn đề này
V. Kiểm tra hệ thống file
Hệ thống file được kiểm tra bằng lệnh fsck (file
system check). Lệnh này kiểm tra theo 5 giai đoạn
(phase):
Phase 1: Check Blocks and Sizes – kiểm tra các
inode
Phase 2: Check PathNames – kiểm tra sự tương
thích giữa inode và thư mục
Phase 3: Check Connectivity – các thư mục có
được kết nối vào hệ thống file ?
Phase 4: Check Reference Counts – sửa các sai
lệch về số link ở hai phase trên
Phase 5: Check Cylinder Groups – kiểm tra các
block chưa dùng có phù hợp với bảng inode
không
Mỗi lần hệ thống khởi động, lúc partition chính
Game Master Do you like playing games? [HCM] Senior QC Engineer Salary $1500+ _ URGENT NEED
Trang 10Tweet 0
chưa mount, fsck tự động chạy và kiểm tra, sửa
các lỗi nhỏ (nếu có thể)
Nếu lỗi nặng, fsck không tự sửa được nó sẽ thông
báo:
/dev/sda4: UNEXPECTED INCONSISTENCY;
RUN fsck MANUALLY
(Tại partition /dev/sda4 có lỗi không tương
thích, hãy chạy fsck bằng tay)
Lệnh tương đương trong windows là chkdsk
và scandisk. Điểm khác là fsck kiểm tra được
cả các partition NTFS và FAT.
Sau khoảng 2530 lần khởi động, fsck sẽ thực
hiện một lần kiểm tra kỹ lưỡng hệ thống file.
Khi đó, quá trình boot sẽ lâu hơn thường lệ và
có thông báo trên màn hình.
V.1Kiểm tra các badblocks.
Badblock là những block bị hỏng vật lý, dữ liệu
không ghi được vào đó hoặc ghi bị sai. Vì vậy định
kỳ cần kiểm tra, đánh dấu các badblock để hệ điều
hành biết, không ghi dữ liệu vào đó nữa (nhất là
với các ổ cứng cũ)
Có hai lệnh (chạy bằng quyền root):
fsck c /dev/sda2 (thay sda2 bằng ký hiệu
partition cần kiểm tra)
badblocks /dev/sda2
Chia sẻ:
Like this:
Trang 11HAProxy và
Keepalived
Tìm hiểu File System của Linux
Linux kernel sysctl
Handling
nginx
Failover
With
KeepAlived
Configure Bugzilla with gmail smtp
Lab Linux – Network Information Service – NIS
Comments
comments
1. Thủ thuật về ổ cứng trên Linux
2. Ubuntu 12.04 LTS (Precise Pangolin)
3. Ubuntu 12.10 (Quantal Quetzal)
4. Xử lý dữ liệu phân tán bằng Hadoop
Tags: Disk, Linux, Root, Ubuntu, Windows
Bài viết liên quan
Thủ thuật về ổ cứng trên Linux (0)
Get hardware information on Linux with lshw
command (0)
Ý nghĩa các thông số trong fstab (3)
Xử lý dữ liệu phân tán bằng Hadoop (1)
Ubuntu 12.10 (Quantal Quetzal) (2)
Tags: Disk, Linux, Root, Ubuntu, Windows
RELATED POSTS
Loading
Trang 12Previous Article
CÁC GÓI PHẦN MỀM
VÀ HỆ THỐNG QUẢN
LÝ GÓI PHẦN MỀM
Next Article
SAMBA ADD A USER
©2015 Tin Tức Công Nghệ.
All Site Contents © Copyright 2016 Góc IT. All Rights Reserved. Powered by GocIT.
Linux, Centos, Ubuntu, Debian, Server, Command line, Virtual, VMware, Xenserver,
Ebook, Monitor, Opensource
Designed by Gocit.vn