Lệnh là:
blockdev --getsize64 /dev/mmcblk0p1
Nó cho kết quả tính bằng byte, dưới dạng số nguyên 64 bit. Nó truy vấn kích thước byte của một thiết bị khối , vì kernel thấy kích thước của nó.
Lý do, tại sao fdisk -l /dev/mmcblk0p1
không hoạt động, đó là fdisk
một số điều hoàn toàn khác: nó đọc trong bảng phân vùng (= sector đầu tiên) của thiết bị khối và in những gì nó tìm thấy . Nó không kiểm tra bất cứ điều gì, chỉ nói những gì trong bảng phân vùng.
Nó thậm chí không bận tâm nếu bảng phân vùng bị hỏng hoặc thiết bị khối không có: nó sẽ in một cảnh báo rằng tổng kiểm tra không ổn, nhưng nó vẫn in những gì tìm thấy, ngay cả khi các giá trị rõ ràng là không -giác quan.
Đây là những gì đã xảy ra trong trường hợp của bạn: /dev/mmcblk0p1
không có bảng phân vùng. Như tên của thiết bị hiển thị, nó đã là phân vùng đầu tiên của đĩa vật lý /dev/mmcblk0
. Đĩa này chứa một bảng phân vùng, nếu bạn đã truy vấn nó fdisk -l /dev/mmcblk0
, nó đã hoạt động (giả sử nó có một bảng phân vùng msdos).