Как получить максимальный LBA жесткого диска (, чтобы использовать его с частичными тестами SMART )?

Как правило, виртуальные машины могут и синхронизируются вовремя гипервизорами виртуализации (в зависимости от конфигурации и технологии виртуализации, а также наличия установленных инструментов)

Время вашей виртуальной машины синхронизируется гипервизором Virtualbox.

Таким образом, чтобы время корректировалось в соответствии со временем вашего хоста виртуализации, вы должны отключить эту синхронизацию.

Вы можете временно отключить его в командной строке, как в:

VBoxManage setextradata "VMname" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1

Где VMName — это имя вашей виртуальной машины, известное VirtualBox.

Это остановит синхронизацию времени, пока вы не перезапустите виртуальную машину.

Чтобы сделать этот параметр постоянным, вы должны остановить эту виртуальную машину, отредактировать yourVMname.vbox и добавить эту запись в раздел:


Jessie также является дистрибутивом, который по умолчанию поставляется с systemd, а для тех, кто использует systemd, systemd-timesyncdвключен по умолчанию.

systemd-timesyncdтакже поддерживает текущее время. Вам также необходимо остановить/отключить его.

Вы можете временно остановить его с помощью:

sudo service systemd-timesyncd stop

Совсем недавно, разработчики Debian гостевых утилит VirtualBox создали конфликт службы гостевых утилит с systemd-timesyncd.service, так что systemd просто не будет запускать последнюю, если запущены гостевые утилиты. Разработчики Debian хотели бы того же для сервисов chrony и ntpd.

1
03.12.2020, 16:00
3 ответа

С помощьюsmartctlвыборочных самопроверок -тестов вы можете использовать ключевое слово maxдля определения максимального LBA для использования в выборочных тестах:

# smartctl -t select,0-max /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.9.11-arch2-1] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Selective self-test routine immediately in off-line mode".
SPAN         STARTING_LBA           ENDING_LBA
   0                    0            537234767
Drive command "Execute SMART Selective self-test routine immediately in off-line mode" successful.
Testing has begun.

Таким образом, в данном случае это 537234767 (включительно, то есть всего 537234768 ).

Это идентично количеству секторов, напечатанному partedи др. но просто чтобы избежать каких-либо сомнений, хорошо использовать smartctlдля получения значения, чтобы не было возможности разногласий относительно размеров логических/физических секторов.

Также происходит запуск самопроверки -, которую можно прервать с помощью smartctl -X.

2
18.03.2021, 22:45

sudo tune2fs -l /dev/sdX1выводит много информации, в том числеblock count:

benraid@OMV:/srv$ sudo tune2fs -l /dev/sdk1
tune2fs 1.44.5 (15-Dec-2018)
Filesystem volume name:   Elements
Last mounted on:          <not available>
Filesystem UUID:          e58521dc-7ac6-4096-8339-42830ceee05d
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              427261952
Block count:              3418087163
Reserved block count:     0
Free blocks:              3390863340
Free inodes:              427261941
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Reserved GDT blocks:      418
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         4096
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Wed Dec  2 20:57:48 2020
Last mount time:          n/a
Last write time:          Wed Dec  2 21:09:13 2020
Mount count:              0
Maximum mount count:      -1
Last checked:             Wed Dec  2 20:57:48 2020
Check interval:           0 (<none>)
Lifetime writes:          103 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     32
Desired extra isize:      32
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      9bccaff2-62b7-45c9-876b-b011f5e8c6b9
Journal backup:           inode blocks
Checksum type:            crc32c
Checksum:                 0x526fb02e

Также интересен /proc/partitions, который, кажется, печатает количество LBA, умноженное на 4. Возможно, есть связь с размером блока (4096):

benraid@OMV:/srv$ cat /proc/partitions
major minor  #blocks  name

   8        0 2930266584 sda
   8        1 2930265543 sda1
   8       48 2930266584 sdd
   8       49 2930265543 sdd1
   8       80 2930266584 sdf
   8       81 2930265543 sdf1
   8       32 2930266584 sdc
   8       33 2930265543 sdc1
   8       64   39082680 sde
   8       65   35221504 sde1
   8       66          1 sde2
   8       69    3858432 sde5
   8       16 2930266584 sdb
   8       17 2930265543 sdb1
   8       96 2930266584 sdg
   8       97 2930265543 sdg1
   8      112 11718885376 sdh
   8      113 11718884335 sdh1
   8      128 9766436864 sdi
   8      129 9766435823 sdi1
   8      144 11718885376 sdj
   8      145 11718884335 sdj1
   8      160 13672349696 sdk
   8      161 13672348655 sdk1

Как отметил ilkkachu в своем комментарии, счетчик LBA раздела не охватывает правильное пространство всего жесткого диска. Но если вам нужно просто указать размер, чтобы использовать его с smartctl -t select,0-$size, это прекрасно. smartctlв любом случае будет начинаться с 0 и заканчиваться в конце диска.

0
18.03.2021, 22:45

Предполагая, что вы работаете в Linux (, так как вы использовали tune2fs), размеры дисков и разделов, видимые для ОС, можно увидеть в /proc/partitions. Например.

# head -3 /proc/partitions
major minor  #blocks  name

   8        0  976762584 sda

Поле #blocksпредставляет собой количество 1024 -байтовых блоков, поэтому количество 512 -байтовых блоков в два раза больше.

# awk '$4 == "sda" { print $3 * 2; } ' < /proc/partitions
1953525168

fdiskи hdparm -iтакже могут показывать количество секторов:

# fdisk -lu /dev/sda | head -1
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
# hdparm -i /dev/sda |grep LBAsects
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1953525168

Еще одним способом может быть поиск конца блочного устройства и запрос смещения, например, с помощью. Перл:

# perl -le '$a = sysseek(STDIN, 0, 2); print $a / 512' < /dev/sda
1953525168

Или, поскольку мы все равно собираемся проводить SMART-тесты, спроситеsmartctl:

# smartctl -i /dev/sda |grep  '^User Capacity:'
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
# smartctl -i /dev/sda |awk '/^User Capacity: / { gsub(",", "", $3); print $3 / 512; }'
1953525168
1
18.03.2021, 22:45

Теги

Похожие вопросы