Lấy tổng kích thước ổ cứng của tôi trong Linux, sử dụng dòng lệnh, không có quyền root?


15

Tôi đang cố gắng tìm ra tổng kích thước của ổ cứng của mình bằng cách sử dụng df -h, nhưng nó in kích thước của từng phân vùng và yêu cầu sudo.

Có cách nào để lấy tổng kích thước ổ cứng của tôi bằng dòng lệnh mà không cần phải có quyền root không?


5
Lưu ý: Việc sử dụng dflà không chính xác nếu đĩa có không gian không phân chia, không phải tất cả các phân vùng đều được gắn (ví dụ: một số phân vùng Windows trên cùng một ổ đĩa) hoặc một số phân vùng không được gắn trực tiếp mà gián tiếp thông qua RAID, LVM hoặc LUKS (mã hóa). Nó cũng sẽ bỏ lỡ (các) phân vùng trao đổi. Vì vậy, tôi khuyên bạn không nên sử dụng dfđể tìm ra kích thước ổ cứng.
Philipp Wendler

Câu trả lời:


12

Một cách hacky là bỏ qua nhu cầu sudobằng cách đọc nhật ký hệ thống với:

dmesg | grep blocks

Xin lưu ý rằng điều này có thể không lý tưởng, vì vậy số dặm của bạn có thể thay đổi ...


4
cat /sys/block/sda/size

Nhưng kích thước là trong đơn vị dựa trên khối,
tôi tìm thấy câu trả lời này ở đây .
Các giải pháp khác ở đây .

Hoặc bạn có thể thử udisks

udisks --show-info /dev/sda | egrep "^[[:space:]]*size" | awk '{print $2}'

4

Nếu bạn muốn kích thước tính theo byte và chỉ giá trị, ví dụ như cho kịch bản:

lsblk -b --output SIZE -n -d /dev/sdX
12220202

-b : Output theo byte.
-n : Không có tiêu đề. Chúng tôi chỉ muốn giá trị số thuần túy.
--output SIZE : Chỉ in cột kích thước.
-d / dev / sdXn : Thiết bị có kích thước mà chúng tôi muốn biết. X là ví dụ d, n là ví dụ: 1 cho phân vùng đầu tiên của đĩa d.

Ưu điểm:

  • quyền root không cần thiết
  • grep là không cần thiết
  • lsblk có sẵn trên hầu hết các hệ thống linux

3

Nếu bạn muốn sử dụng thông tin đó trong tập lệnh chẳng hạn, hãy sử dụng

sudo blockdev --getsz /dev/sda

có thể dễ dàng hơn fdisk hoặc hdparm vì nó chỉ cung cấp cho bạn thông tin liên quan (chỉ cần nhân với 512). Tuy nhiên, nó cũng sẽ yêu cầu sudo.

Tất nhiên bạn có thể thay đổi cấu hình của sudo sao cho nó thực thi lệnh cụ thể này mà không yêu cầu mật khẩu (tôi đoán blockdev --getszlà khá an toàn ngay cả khi được thực thi bởi người dùng không có đặc quyền bình thường).

Điều này sẽ được thực hiện bằng cách thêm dòng sau vào /etc/sudoers:

ALL ALL= NOPASSWD:/sbin/blockdev --getsz /dev/*

Khi bạn chỉnh sửa tệp này, hãy chắc chắn sử dụng lệnh sudo visudo chứ không phải trình soạn thảo thông thường của bạn. Nếu không, rất dễ gây ra lỗi cú pháp, điều này dẫn đến việc không thể sử dụng sudo nữa (bạn sẽ phải khởi động lại vào chế độ cứu hộ để khắc phục điều này).


1
Từ trang người đàn ông : --getsize64 Print device size in bytes.. Cũng ở đây .
Sparhawk

1

Tôi không có trong hộp Linux của mình ngay bây giờ, nhưng bạn có thể thử:

hdparm -I /dev/sda

hoặc là

fdisk -l

mà cũng có thể sẽ yêu cầu một sudo.

Tôi chưa thấy bất cứ nơi nào mà df yêu cầu root. Thật ki quặc.


Có lẽ "df" không có trong PATH. HVNSweeting, hãy thử "sudo which df" và sau đó thử với tư cách người dùng.
Milan Babuškov

xin chào, đây là những gì tôi nhận được: hvnsweeting @ hvnbox: ~ $ blockdev --getsz / dev / sda / dev / sda: Quyền bị từ chối hvnsweeting @ hvnbox: ~ $ hdparm -I / dev / sda / dev / sda: Quyền bị từ chối @hvnbox: ~ $ fdisk -l hvnsweeting @ hvnbox: ~ $
HVNSweeting

1
Mọi thứ truy cập trực tiếp vào thiết bị (ví dụ: / dev / sda) sẽ cần sudo.
Philipp Wendler

1

Bạn có một cài đặt xấu hoặc một sysadmin hoang tưởng vô lý. Tôi chưa bao giờ nghe nói về việc dfyêu cầu quyền root trước đây. Và tôi đã làm việc với khá nhiều hương vị khác nhau của các hệ điều hành giống như unix / unix.

Dù sao, điều này sẽ cung cấp cho bạn tổng kích thước của tất cả các phân vùng đĩa ( dfcột đầu tiên là /dev/hd...hoặc /dev/sd...) trong các khối (kB):

df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s}'

hoặc tính bằng GB:

df | grep '^/dev/[hs]d' | awk '{s+=$2} END {print s/1048576}'

0

Kiểm tra dung lượng đĩa từ Gnome và Kubfox

Trình phân tích sử dụng đĩa là một ứng dụng điều khiển trình đơn đồ họa báo cáo việc sử dụng đĩa trong môi trường Gnome và Kubfox. DUA (Trình phân tích sử dụng đĩa) có thể quét toàn bộ cây hệ thống tệp hoặc các thư mục riêng lẻ, cục bộ hoặc từ xa. DUA cũng rất năng động, theo đó nó sẽ báo cáo theo thời gian thực bất kỳ thiết bị nào được gắn và không đếm được.

Để truy cập Trình phân tích sử dụng đĩa trong Gnome, nhấp vào: Ứng dụng \ Phụ kiện \ Trình phân tích sử dụng đĩa đơn giản.

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.