for good overview it makes sense to label the harddisk partitions according to functionality (what is their purpose?)
GNU Linux bash – how to label partitions tune2fs (xfs & ext4)
all infos about one’s harddisk:
# tested on: hostnamectl Static hostname: centos.localdomain Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 4.15.9 Architecture: x86-64 # software needed: install smart monitoring tools # rpm based distributions yum install smartmontools.x86_64 # apt based distributions apt-get install smartmontools # nice overview: all harddisks, partitions, sizes and filesystems lsblk -o "NAME,MAJ:MIN,RM,SIZE,RO,FSTYPE,MOUNTPOINT,UUID" # example output: NAME MAJ:MIN RM SIZE RO FSTYPE MOUNTPOINT UUID sdb 8:16 0 465.8G 0 └─sdb1 8:17 0 465.8G 0 ext3 xxx sdc 8:32 0 931.5G 0 └─sdc1 8:33 0 931.5G 0 ext3 /run/media/user/SOFTWARE xxx sda 8:0 0 238.5G 0 ├─sda4 8:4 0 1K 0 ├─sda2 8:2 0 100G 0 ext3 /home xxx ├─sda5 8:5 0 7.8G 0 swap [SWAP] xxx ├─sda3 8:3 0 50G 0 xfs / xxx ├─sda1 8:1 0 1G 0 xfs /boot xxx └─sda6 8:6 0 79.7G 0 ext3 /run/media/user/projects xxx # disk usage: is it full? if yes how full is it? # check all disks disk usage df -h # specific partition: df -h /dev/sdc1 Filesystem Size Used Avail Use% Mounted on /dev/sdc1 917G 684G 187G 79% /run/media/user/SOFTWARE # why is it full? (busybox qnap tested) # list biggest 30 dir and files du -a /run/media/user/SOFTWARE | sort -n -r | head -n 30; # another tool to get a lot of info about the device including serial number udevadm info --query=all --name=/dev/nvme0n1 P: /devices/pci0000:80/0000:80:01.5/0000:85:00.0/nvme/nvme0/nvme0n1 M: nvme0n1 R: 1 U: block T: disk D: b 259:3 N: nvme0n1 L: 0 S: disk/by-id/nvme-KINGSTON_SKC3000D2048G_12345B6789012CC6 S: disk/by-id/nvme-eui.00000000000000000026b7686467cc45 S: disk/by-id/nvme-KINGSTON_SKC3000D2048G_12345B6789012CC6_1 S: disk/by-diskseq/3 S: disk/by-path/pci-0000:85:00.0-nvme-1 Q: 3 E: DEVPATH=/devices/pci0000:80/0000:80:01.5/0000:85:00.0/nvme/nvme0/nvme0n1 E: DEVNAME=/dev/nvme0n1 E: DEVTYPE=disk E: DISKSEQ=3 E: MAJOR=259 E: MINOR=3 E: SUBSYSTEM=block E: USEC_INITIALIZED=1641102 E: ID_SERIAL_SHORT=012345B6789012CC6 E: ID_WWN=eui.00000000000000000026b7686467cc45 E: ID_MODEL=KINGSTON SKC3000D2048G E: ID_REVISION=EIFK31.6 E: ID_NSID=1 E: ID_SERIAL=KINGSTON_SKC3000D2048G_12345B6789012CC6_1 E: ID_PATH=pci-0000:85:00.0-nvme-1 E: ID_PATH_TAG=pci-0000_85_00_0-nvme-1 E: ID_PART_TABLE_UUID=dc494f82 E: ID_PART_TABLE_TYPE=dos E: DEVLINKS=/dev/disk/by-id/nvme-KINGSTON_SKC3000D2048G_012345B6789012CC6 /dev/disk/by-id/nvme-eui.00000000000000000026b7686467cc45 /dev/disk/by-id/nvme-KINGSTON_SKC3000D2048G_50026B7686467C> E: TAGS=:systemd: E: CURRENT_TAGS=:systemd: find /dev/disk/by-id/ -iname "*12345B6789012CC6*" /dev/disk/by-id/nvme-KINGSTON_SKC3000D2048G_50026B7686467CC4_1 ll /dev/disk/by-id/nvme-KINGSTON_SKC3000D2048G_12345B6789012CC6_1 lrwxrwxrwx 1 root root 13 2024-05-17 18:29 /dev/disk/by-id/nvme-KINGSTON_SKC3000D2048G_12345B6789012CC6_1 -> ../../nvme0n1
# how many blocks does this partition sdc1 have? # (use sdc to see blocks of the whole harddisk) blockdev --report /dev/sdc1 RO RA SSZ BSZ StartSec Size Device rw 256 512 4096 2048 1000203091968 /dev/sdc1 tune2fs -l /dev/sdc1 # example output on external usb attached wd buffalo 1tb tune2fs 1.42.9 (28-Dec-2013) Filesystem volume name: SOFTWARE Last mounted on: /run/media/user/SOFTWARE Filesystem UUID: xxx Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 61054976 Block count: 244190208 Reserved block count: 12209510 Free blocks: 61059140 Free inodes: 60765281 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 965 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Filesystem created: Tue Dec 20 23:58:16 2016 Last mount time: Wed Jan 15 10:44:57 2020 Last write time: Wed Jan 15 10:44:57 2020 Mount count: 55 Maximum mount count: 10 Last checked: Tue Dec 3 17:46:21 2019 Check interval: 2592000 (1 month) Next check after: Thu Jan 2 17:46:21 2020 Lifetime writes: 1779 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 582a22b3-9507-4d6c-bd9d-68ff9d707ce6 Journal backup: inode blocks # same same but different dumpe2fs -h /dev/sdc1 dumpe2fs 1.42.9 (28-Dec-2013) Filesystem volume name: SOFTWARE Last mounted on: /run/media/user/SOFTWARE Filesystem UUID: xxx Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 61054976 Block count: 244190208 Reserved block count: 12209510 Free blocks: 61059140 Free inodes: 60765281 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 965 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Filesystem created: Tue Dec 20 23:58:16 2016 Last mount time: Wed Jan 15 10:44:57 2020 Last write time: Wed Jan 15 10:44:57 2020 Mount count: 55 Maximum mount count: 10 Last checked: Tue Dec 3 17:46:21 2019 Check interval: 2592000 (1 month) Next check after: Thu Jan 2 17:46:21 2020 Lifetime writes: 1779 GB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 582a22b3-9507-4d6c-bd9d-68ff9d707ce6 Journal backup: inode blocks Journal features: journal_incompat_revoke Journal size: 128M Journal length: 32768 Journal sequence: 0x0001bda3 Journal start: 1 # run filesystem check on this partition # write harddisk cache to disk sync; # unmount all partitions of sdc umount /dev/sdc*; fsck -v -y -f /dev/sdc1
enough with the filesystem stuff, give some detail about the hardware:
# get hardware informations about all kind of storage devices apt install lshw; # apt based systems yum install lshw; # rpm based systems lshw -class tape -class disk -class storage -short H/W path Device Class Description ============================================================ /0/100/14/1/2 scsi3 storage External USB 3.0 /0/100/14/1/2/0.0.0 /dev/sdb disk 500GB External USB 3.0 /0/100/1f.2 storage 8 Series SATA Controller 1 [AHCI mode] /0/2 scsi0 storage /0/2/0.0.0 /dev/sda disk 250GB Samsung SSD 860 # get hardware informations about sata attached disks # (usually does not work for usb harddisks) hdparm -i /dev/sda /dev/sda: Model=SanDisk SDSSDHP256G, FwRev=X2316RL, SerialNo=XXXXX Config={ Fixed } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0 BuffType=unknown, BuffSize=unknown, MaxMultSect=1, MultSect=1 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=500118192 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 AdvancedPM=yes: unknown setting WriteCache=enabled Drive conforms to: unknown: ATA/ATAPI-4,5,6,7 * signifies the current active mode hdparm -i /dev/sdb /dev/sdb: SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 HDIO_GET_IDENTITY failed: Invalid argument # had problems with Crucial SSD 64GB... interesting output smartctl smartctl -i /dev/sdb smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.15.9] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Crucial/Micron RealSSD m4/C400 Device Model: M4-CT064M4SSD2 LU WWN Device Id: 5 00a075 109090487 Firmware Version: 000F User Capacity: 64,023,257,088 bytes [64.0 GB] Sector Size: 512 bytes logical/physical Rotation Rate: Solid State Device Form Factor: 2.5 inches Device is: In smartctl database [for details use: -P show] ATA Version is: ACS-2, ATA8-ACS T13/1699-D revision 6 SATA Version is: SATA 3.0, 6.0 Gb/s (current: 1.5 Gb/s) Local Time is: Mon Jan 27 15:19:47 2020 CET ==> WARNING: This drive may hang after 5184 hours of power-on time: http://www.tomshardware.com/news/Crucial-m4-Firmware-BSOD,14544.html See the following web pages for firmware updates: http://www.crucial.com/support/firmware.aspx http://www.micron.com/products/solid-state-storage/client-ssd#software SMART support is: Available - device has SMART capability. SMART support is: Enabled # "Makes you wonder if there is a hidden agenda behind the 'counter'. # IF counter>5000 AND warranty=-1 THEN FAIL" ;) # one fine day the x60s... just did not boot up anymore... and hung at boot... # even when correct decryption password was given # even when smartctl -H says "PASSED" # when booting from USB stick it hangs # there is something off with this device, it goes to trash # this is the first SSD to fail ...
# smartctl still manages to get hardware details about the usb attached harddisk smartctl -i /dev/sdc smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.15.9] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Western Digital Caviar Green Device Model: WDC WD10EACS-00ZJB0 Serial Number: WD-xxx LU WWN Device Id: 5 0014ee 201410d3d Firmware Version: 01.01B01 User Capacity: 1,000,204,886,016 bytes [1.00 TB] Sector Size: 512 bytes logical/physical Device is: In smartctl database [for details use: -P show] ATA Version is: ATA8-ACS (minor revision not indicated) SATA Version is: SATA 2.5, 3.0 Gb/s Local Time is: Wed Jan 15 16:57:24 2020 CET SMART support is: Available - device has SMART capability. SMART support is: Enabled # read "S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology" telemetry from drive smartctl -H /dev/sdc smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.15.9] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED
if someone is interested… this is the full SMART data of the Crucial SSD:
smartctl -a /dev/sdb
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.15.9] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Crucial/Micron RealSSD m4/C400
Device Model: M4-CT064M4SSD2
Serial Number: 00000000121709090487
LU WWN Device Id: 5 00a075 109090487
Firmware Version: 000F
User Capacity: 64,023,257,088 bytes [64.0 GB]
Sector Size: 512 bytes logical/physical
Rotation Rate: Solid State Device
Form Factor: 2.5 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS-2, ATA8-ACS T13/1699-D revision 6
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is: Mon Jan 27 15:52:09 2020 CET
==> WARNING: This drive may hang after 5184 hours of power-on time:
http://www.tomshardware.com/news/Crucial-m4-Firmware-BSOD,14544.html
See the following web pages for firmware updates:
http://www.crucial.com/support/firmware.aspx
http://www.micron.com/products/solid-state-storage/client-ssd#software
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x80) Offline data collection activity
was never started.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 295) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 4) minutes.
Conveyance self-test routine
recommended polling time: ( 3) minutes.
SCT capabilities: (0x003d) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 100 100 050 Pre-fail Always - 0
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0
9 Power_On_Hours 0x0032 100 100 001 Old_age Always - 39651
(4.5 years... used was used in a server... then in a lenovo x60s... then it failed)
12 Power_Cycle_Count 0x0032 100 100 001 Old_age Always - 214
170 Grown_Failing_Block_Ct 0x0033 100 100 010 Pre-fail Always - 0
171 Program_Fail_Count 0x0032 100 100 001 Old_age Always - 0
172 Erase_Fail_Count 0x0032 100 100 001 Old_age Always - 0
173 Wear_Leveling_Count 0x0033 097 097 010 Pre-fail Always - 99
174 Unexpect_Power_Loss_Ct 0x0032 100 100 001 Old_age Always - 70
181 Non4k_Aligned_Access 0x0022 100 100 001 Old_age Always - 652 510 142
183 SATA_Iface_Downshift 0x0032 100 100 001 Old_age Always - 0
184 End-to-End_Error 0x0033 100 100 050 Pre-fail Always - 0
187 Reported_Uncorrect 0x0032 100 100 001 Old_age Always - 0
188 Command_Timeout 0x0032 100 100 001 Old_age Always - 0
189 Factory_Bad_Block_Ct 0x000e 100 100 001 Old_age Always - 77
194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 0
195 Hardware_ECC_Recovered 0x003a 100 100 001 Old_age Always - 0
196 Reallocated_Event_Count 0x0032 100 100 001 Old_age Always - 0
197 Current_Pending_Sector 0x0032 100 100 001 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 100 001 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 100 100 001 Old_age Always - 0
202 Perc_Rated_Life_Used 0x0018 097 097 001 Old_age Offline - 3
206 Write_Error_Rate 0x000e 100 100 001 Old_age Always - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
related links:
GNU Linux bash – how to get nice overview over harddisks and patitions
https://dwaves.de/2020/11/13/gnu-linux-basic-harddisks-benchmarks-ssds-kingston-skc600512g-vs-samsung-ssd-850-pro-vs-samsung-ssd-860-evo-ntfs-vs-ext4-how-fast-are-virtual-harddisks/
GNU Linux Bash – show iterate over partitions harddisk models namens types and UUIDs
https://dwaves.de/2019/09/08/linux-bash-script-iterate-over-all-harddisks-in-the-system-and-check-their-smart-status-also-for-qnap-nas/
liked this article?
- only together we can create a truly free world
- plz support dwaves to keep it up & running!
- (yes the info on the internet is (mostly) free but beer is still not free (still have to work on that))
- really really hate advertisement
- contribute: whenever a solution was found, blog about it for others to find!
- talk about, recommend & link to this blog and articles
- thanks to all who contribute!