Có cách nào để đồng bộ chỉ một phân vùng không?


Câu trả lời:


10

bạn có thể kết nối lại với tùy chọn đồng bộ hóa và sau đó kết nối lại với async:

mount -o remount,sync /mountpoint
mount -o remount,async /mountpoint

Sử dụng tùy chọn remount sẽ không gây rối với các quy trình sử dụng hệ thống tập tin được kết nối lại.


2
Tại sao bạn nghĩ rằng 2 lần tái xuất là cần thiết? Trong ít nhất 2.6.32 kernel do_remount_sb thực hiện sync_filesystem, đó là chức năng tương tự được gọi trong cuộc gọi hệ thống syncfs được giới thiệu trong lwn.net/Articles/433384 .
Yuriy Nazarov

5

Có một chức năng tiêu chuẩn để đồng bộ hóa dữ liệu (và siêu dữ liệu) của một tệp : fsync. Không có lệnh shell tiêu chuẩn hoặc phổ biến để truy cập nó, nhưng bạn có thể sử dụng syncphương thức của perl trong IO::Handle:

perl -MIO::File -e 'new IO::File($ARGV[0], "r+")->sync()' filename

Không có chức năng tiêu chuẩn hoặc phổ biến hoặc lệnh shell để đồng bộ hóa chỉ một phân vùng.

Trên các hệ thống Linux gần đây , có syncfslệnh gọi hệ thống (được giới thiệu trong kernel 2.6.39 và được hiển thị kể từ glibc 2.14 ). Tôi không nghĩ rằng cuộc gọi hệ thống này được thể hiện trong coreutils hoặc linux-linux.


1
Câu cuối cùng syncfslà phần có liên quan nhất.
poolie

3

Gắn kết phân vùng với synctùy chọn có thể là một giải pháp.


2

Nếu bạn có nghĩa là synctiện ích xóa dữ liệu trong bộ nhớ vào đĩa, thì câu trả lời là không. Điều này là do thực tế syncthường được sử dụng trong quy trình tắt máy hoặc khởi động lại, trong đó nên lấy dữ liệu được ghi an toàn vào đĩa và mục tiêu thực sự của hoạt động là bộ nhớ, không phải đĩa và lấy dữ liệu được đệm ra khỏi RAM đến nơi nào đó an toàn. Các đĩa chỉ là nơi dữ liệu kết thúc.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.