Điều gì xảy ra nếu tôi chạy fsck trên / dev / sda thay vì / dev / sda1?


8

Khi tôi đã chạy fscktrong quá khứ, tôi đã luôn chạy nó trên cái mà tôi nghĩ là phân vùng hệ thống tập tin, tức là. fsck -yf /dev/sdaN, trong đó N là số phân vùng trên đĩa A. Một người bạn của tôi gần đây đã chạy fscktrên đĩa hoàn toàn mới của anh ấy và nó đã báo cáo một loạt lỗi sử dụng fsck -yf /dev/sda. Tôi tò mò, sự khác biệt giữa việc chạy fscktrên toàn bộ đĩa ( /dev/sda), những câu thơ chạy nó trên một phân vùng duy nhất ( /dev/sda1) là gì?


Bạn nên nhận một số loại "tin nhắn vô dụng" như "/ dev / sda đang được sử dụng" như anh chàng này: Askubfox.com/questions/239316/dev-sda-is-in-use-from-livecd

@nwildner Đó không phải là kết quả nhìn thấy trong trường hợp này. Có vẻ như /dev/sdanó thực sự không được sử dụng, vì bạn tôi đang ở trong một loại vỏ phục hồi nào đó có sẵn trước khi ổ đĩa được gắn.
dinkelk

Nó nên dừng lại vì nó không nhận ra bất kỳ fs nào vì nó không có nghĩa là để kiểm tra các bảng phân vùng.
bot47

Câu trả lời:


6

Khi fsck chạy, trước tiên, nó nên cố gắng xác định vị trí siêu khối của hệ thống tệp để bắt đầu duyệt qua cấu trúc của hệ thống tệp để xác thực nó. Vì /dev/sdathiết bị tương ứng với toàn bộ ổ đĩa, phần đầu tiên của đĩa có thể sẽ chứa bảng phân vùng hoặc Bản ghi khởi động chínhfscksẽ không thể định vị siêu khối cho hệ thống tệp được hỗ trợ (trừ khi bạn nhận được thứ gì đó khớp với số ma thuật cho hệ thống tập tin đã biết). Tôi hy vọng nó sẽ thoát do lỗi hoặc cung cấp đầu ra không chính xác (như bạn bè của bạn có kinh nghiệm). Tuy nhiên, tôi chưa tự mình thực hiện thí nghiệm này.


5

Nó sẽ không hoạt động, nếu hệ thống tập tin được cài đặt trong một phân vùng (ví dụ sda1).

fsckvà anh em của nó là các công cụ để thực hiện bảo trì trên các hệ thống tập tin (do đó tên: f ile s ystem c chec k ), không phải của các thiết bị khối.

Về mặt lý thuyết, có thể đặt một hệ thống tập tin trực tiếp lên một thiết bị khối bằng cách nào đó mke2fs -j /dev/sda, nhưng đây là một thực tế rất, rất tệ. Nhưng nếu bạn làm như vậy, hệ thống tập tin sẽ trực tiếp hoạt động sda, và sau đó với fscknó, bạn thực sự sẽ chỉ fsckvào thiết bị. Đừng làm điều này . Các bảng phân vùng là có lý do, và nó không chỉ chiếm một lượng không gian danh nghĩa cho một mục lục.


1

Nếu thiết bị chứa một hệ thống tập tin được hỗ trợ, fsck sẽ hoạt động. Thiết bị có thể là toàn bộ ổ đĩa cứng như / dev / sda, hoặc phân vùng hoặc đĩa flopy (bất kỳ ai cũng nhớ những cái đó là gì?) Như / dev / fd0, hoặc thậm chí là một tệp trên một đĩa cứng khác như ~ / hdimage.img . Đối với các ổ đĩa mềm, toàn bộ ổ đĩa thường được sử dụng, do đó không có lý do để phân vùng, vì vậy hệ thống tập tin được thực hiện trên / dev / fd0. Các ổ đĩa cứng thông thường được chia thành các phân vùng và hệ thống tệp được xây dựng trong các phân vùng. Tuy nhiên, nếu bạn muốn sử dụng toàn bộ ổ đĩa làm một phân vùng và bạn không cần phải khởi động từ nó, bạn có thể tạo một hệ thống tệp trực tiếp trên thiết bị (mke2fs / dev / sdb), gắn nó và sao chép nhiều tệp vào nó, sau đó fsck / dev / sdb sẽ hoạt động. Điều này đã được gọi là một cấu hình "siêu mềm". Tôi nghĩ rằng các đĩa iomega 100MB cũ cũng thường được định dạng theo cách này. Một đĩa thậm chí không cần phải có một hệ thống tệp - nó có thể có một tệp duy nhất. Tôi thường tạo các tệp tar có kích thước phù hợp để vừa với DVD, ghi chúng vào đĩa. Sau đó, đĩa không thể gắn kết được, nhưng tar -xvf some / where / myfile / dev / sr0 trích xuất myfile từ đĩa.


Hãy nghĩ về nó có thể tạo ra một khả năng khởi động siêu mềm, giống như các ổ đĩa mềm.
Ed Berry
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.