Partition 2 does not start on physical sector boundary как исправить

Yodo.im - бот учитель Linux и DevOPS

Загрузка…

Когда ставил систему на ноутбук, не было особо много времени, делал всё по привычке с почти закрытыми глазами. Потом обнаружил как-то, что жёсткий диск с физическими секторами 4096, в то время как логические 512 байт (до сих пор не пойму, почему нельзя было их сделать тоже 4096, да и забить на совместимость со старыми ОС – для тем, кому не нужно).

Сейчас озаботился тем, чтобы добавить ещё один раздел в LVM, так как места не хватает. До этого оставил «свободное место» в конце диска… думая, вдруг захочу оффтопик поставить второй системой. Ну «на всякий случай». Всякий случай не произошёл, потому думаю на этом забить.

Вот выхлоп fdisk -l -u /dev/sda

Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Единицы: sectors по 1 * 512 = 512 байт
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Тип метки диска: gpt
Идентификатор диска: F87A6278-F1D1-4EEF-B700-A1910009C43C

Устр-во        Start Конец Секторы   Size Тип
/dev/sda1         34   1044224   1044191 509.9M BIOS boot
/dev/sda2    1044225   2088449   1044225 509.9M EFI System
/dev/sda3    2088450 631242044 629153595   300G Linux LVM
/dev/sda4  631242752 633339903   2097152     1G Linux своп
/dev/sda5  633339904 843053055 209713152   100G Linux LVM

Partition 1 does not start on physical sector boundary.
Partition 2 does not start on physical sector boundary.
Partition 3 does not start on physical sector boundary.

Собственно, после /dev/sda5 идёт свободное место – думаю создать ещё один раздел и добавить его в LVM.

Но смутило предупреждение, что партиции 1, 2 и 3 «does not start on physical sector boundary». Раньше, невнимательный, не замечал. Как вы, наверное, поняли – ноутбуком пользуюсь уже года два или больше – всё ок, на производительность I/O не жалуюсь особо. Но может зря? Может, быстрее будет? Или игнорировать это предупреждение?

Ещё немного сыкатно, что LVM – безопасно его двигать без уменьшения размера раздела?.. Думаю, что безопасно… по логике вещей – partitionmanager позволяет это сделать – но стоит ли?

P.S. Да, ещё тут вроде бы GPT в каком-то режиме совместимости с MBR – который мне, так понимаю, нужен, чтобы грузился grub. sda2 – загрузочный раздел, там grub. Загрузку с UEFI я в своё время не осилил и забил – не нашёл под рукой флешки, которая бы грузилась с UEFI и не понял, как её создать. В общем, на это мне без разницы.

Аватар пользователя admin

В некоторых случаях, при создании раздела с помощью fdisk, при просмотре списка разделов мы видим сообщение: “Partition N does not start on physical sector boundary“. О том, что это такое и как это исправить, рассказывается ниже.

Новые модели жётских дисков используют так называемый расширенный формат. Такие жёсткие диски используют физический размер сектора в 4096 байт вместо традиционных 512. Но fdisk и операционная система работают с размером сектора в 512 байт и получается нестыковка между физическим и логическим размером сектора, что тот же fdisk вам показывает в виде сообщения:

Sector size (logical/physical): 512 bytes / 4096 bytes

Не углубляясь в дебри того как это работает и зачем нужно, просто запомните, что не следует оставлять разделы с таким предупреждающим сообщением как “Partition N does not start on physical sector boundary“. Работать они, конечно, будут, но производительность дисковых операций при работе с такими разделами  будет существенно хуже.

Теперь о том как это исправить. Это очень просто. Вы должны в fdisk’е переключиться с дорожек на секторы, нажав букву “u” в основном меню.

Command (m for help): u
Changing display/entry units to sectors

Далее вам нужно выровнять раздел так, чтобы начальный сектор раздела был всегда кратен 8, т.е. цифра начала раздела всегда делилась нацело на 8. Т.е. 64, 256 – это правильно, а вот 63 или 255 – неправильно! Если, допустим вам нужно создать раздел, который находится за другим разделом, который заканчивается на 2097189348. Следующий раздел по идее должен начаться с сектора 2097189349, но если вы создадите раздел, начав с этого сектора, то и получите предупреждение “Partition N does not start on physical sector boundary“. Какой же должен быть начальный номер сектора? Вычисляем: целая часть от деления 2097189349 на 8 равна 262148668 и есть остаток 5, а нам нужно, чтобы его не было. Увеличиваем 262148668 на 1 и снова умножаем на 8, получаем 262148669 * 8 = 2097189352 – вот он искомый номер: следующий раздел должен начинаться с сектора 2097189352!

  • 6400 просмотров

1. Solve it

I also encounter this problem, and this is how I suppress the annoying warning!

The key point is: set the start to any logical sector, which is a multiple of 8.

I set 204800 (because I can only choose from 65535-976773167).

step1 fdisk

$ fdisk /dev/sdf

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除

命令(输入 m 获取帮助):p

磁盘 /dev/sdf:500.1 GB, 500107862016 字节,976773168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 33553920 字节
磁盘标签类型:dos
磁盘标识符:0xa2254a70

   设备 Boot      Start         End      Blocks   Id  System

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1

# the key point
# ⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬⏬
起始 扇区 (65535-976773167,默认为 65535):  204800 (chose a multiple of 8)
Last 扇区, +扇区 or +size{K,M,G} (204800-976773167,默认为 976773167):
将使用默认值 976773167
分区 1 已设置为 Linux 类型,大小设为 465.7 GiB
# 🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼🔼




命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

step2 format the disk

$ mkfs.ext4 /dev/sdf1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=8191 blocks
30523392 inodes, 122071046 blocks
6103552 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2271215616
3726 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
  32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
  4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
  102400000

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

step3 the result

And, finally the warning is disappear.

$ fdisk -l /dev/sdf

磁盘 /dev/sdf:500.1 GB, 500107862016 字节,976773168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 33553920 字节
磁盘标签类型:dos
磁盘标识符:0xa2254a70

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdf1          204800   976773167   488284184   83  Linux



$ lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                    8:0    0 223.6G  0 disk
├─sda1                 8:1    0   500M  0 part /boot/efi
├─sda2                 8:2    0     1G  0 part /boot
└─sda3                 8:3    0   170G  0 part
  ├─centos--sda-root 253:0    0   100G  0 lvm  /
  ├─centos--sda-swap 253:1    0    20G  0 lvm
  └─centos--sda-home 253:2    0    50G  0 lvm  /home
sdb                    8:16   0   1.8T  0 disk /data2
sdc                    8:32   0   1.8T  0 disk
sdd                    8:48   0   1.8T  0 disk /data1
sde                    8:64   0   1.8T  0 disk /home
sdf                    8:80   0 465.8G  0 disk
└─sdf1                 8:81   0 465.7G  0 part

2.How this problem looks like

Show disk

[root@dt120 data1]# lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                    8:0    0 223.6G  0 disk
├─sda1                 8:1    0   500M  0 part /boot/efi
├─sda2                 8:2    0     1G  0 part /boot
└─sda3                 8:3    0   170G  0 part
  ├─centos--sda-root 253:0    0   100G  0 lvm  /
  ├─centos--sda-swap 253:1    0    20G  0 lvm
  └─centos--sda-home 253:2    0    50G  0 lvm  /home
sdb                    8:16   0   1.8T  0 disk /data2
sdc                    8:32   0   1.8T  0 disk
sdd                    8:48   0   1.8T  0 disk /data1
sde                    8:64   0   1.8T  0 disk /home
sdf                    8:80   0 465.8G  0 disk
└─sdf1                 8:81   0 465.7G  0 part

fdisk

$ fdisk /dev/sdf
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xff020bf0 创建新的 DOS 磁盘标签。

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

命令(输入 m 获取帮助):p

磁盘 /dev/sdf:500.1 GB, 500107862016 字节,976773168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 33553920 字节
磁盘标签类型:dos
磁盘标识符:0xff020bf0

   设备 Boot      Start         End      Blocks   Id  System


命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (65535-976773167,默认为 65535):
将使用默认值 65535
Last 扇区, +扇区 or +size{K,M,G} (65535-976773167,默认为 976773167):
将使用默认值 976773167
分区 1 已设置为 Linux 类型,大小设为 465.7 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdf:500.1 GB, 500107862016 字节,976773168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 33553920 字节
磁盘标签类型:dos
磁盘标识符:0x2b6ce6ea

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdf1           65535   976773167   488353816+  83  Linux
Partition 1 does not start on physical sector boundary.

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。


$ lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                    8:0    0 223.6G  0 disk
├─sda1                 8:1    0   500M  0 part /boot/efi
├─sda2                 8:2    0     1G  0 part /boot
└─sda3                 8:3    0   170G  0 part
  ├─centos--sda-root 253:0    0   100G  0 lvm  /
  ├─centos--sda-swap 253:1    0    20G  0 lvm
  └─centos--sda-home 253:2    0    50G  0 lvm  /home
sdb                    8:16   0   1.8T  0 disk /data2
sdc                    8:32   0   1.8T  0 disk
sdd                    8:48   0   1.8T  0 disk /data1
sde                    8:64   0   1.8T  0 disk /home
sdf                    8:80   0 465.8G  0 disk
└─sdf1                 8:81   0 465.7G  0 part

format

$ mkfs.ext4 /dev/sdf1
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdf1 alignment is offset by 512 bytes.
This may result in very poor performance, (re)-partitioning suggested.
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=8191 blocks
30523392 inodes, 122088454 blocks
6104422 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2271215616
3726 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
  32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
  4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
  102400000

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

the problem

Partition 1 does not start on physical sector boundary.

$ fdisk -l /dev/sdf

磁盘 /dev/sdf:500.1 GB, 500107862016 字节,976773168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 33553920 字节
磁盘标签类型:dos
磁盘标识符:0xa2254a70

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdf1           65535   976773167   488353816+  83  Linux
Partition 1 does not start on physical sector boundary.

  • Печать

Страницы: [1]   Вниз

Тема: Partition 2 does not start on physical sector boundary.  (Прочитано 3602 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
redbeatles

Доброго времени суток, камрады!

Случайно потерялась флэшка, хотел посмотреть инфо и тут увидел страшненькую запись красным цветом в выводе sudo fdisk -l -u. Кто в курсе, с чем это связано и как исправить?
А также я впервые сталкиваюсь с Диск /dev/ram0 … Диск /dev/ram15, это что еще за звери по 64Mb?
Всего в системе 2 диска:
SSD: 120Gb: sdb1 /
SSD: 120Gb: sdb2 /boot
SSD: 120Gb: sdb3 /swap

HDD: /dev/sda1 810,6G 83 /home
HDD: /dev/sda2 120,9G  5 Расширенный – вот это неизвестный мне зверь и с ним есть проблема.
HDD: /dev/sda5 120,9G 83 /home/user/virtualbox – специально выделил кусок на виртуальные машины.

Спасибо за Вашу помощь!

Вывод:

sudo fdisk -l -u

Ubuntu 14.04 LTS
Zalman MS800 Plus + Asus H97-PRO + Intel Core i7-4790 + 4хDDR3-1600 8GB + Asus PCI-Ex GeForce GTX660 2GB + SSD/Intel 530 120GB + WD Caviar Blue 1TB


Оффлайн
Sly_tom_cat

На сообщение – забить – это расширенный раздел – наследие MBR разметки – по сути просто контейнер для разделов (логических) который сам является первичным разделом.

Там в нем крайне редко читается первый сектор и все. То что он не на границе физического сектора – наплевать – ибо нужно там всего 512 байт из тех 4Kb которые будут считаны с диска.

Гораздо больше вопросов у меня вызывают размеры корня, свопа и особенно /boot на ssd  :idiot2: :o нафига такие объемища выделять… или я не правильно что-то понял…. :idiot2: и зачем вообще было /boot выносить отдельным разделом?


Пользователь добавил сообщение 29 Июня 2016, 00:56:50:


На RAM* – просто не обращайте внимания.

« Последнее редактирование: 29 Июня 2016, 00:56:50 от Sly_tom_cat »


Оффлайн
EvangelionDeath

Sly_tom_cat, нынче для boot надо 300-500МБ минимум) Так что 256МБ даже мало) А вот для чего его отдельно делать, єто действительно загадка

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


Оффлайн
redbeatles

Парни, ну, я мягко говоря не профи, хотя и с Ubuntu больше 5-6 лет начиная с 9-ки. Поэтому еще с тех времен как-то прочел пару обзоров, так там не только boot, там и usr и tmp выделяли и т.д. Сейчас я tmp вынес в RAM, чтобы не дергать ssh лишний раз. Но вот с разделом под boot у меня старая песня. Всегда делал 200mb, это я закатал 16.04 и решил чуть больше.

p.s. Ну, это месяц переживу, там когда выйдет поинт релиз, наверное сделаю с нуля все. Кое в чем я ошибся тут при установке.

Ubuntu 14.04 LTS
Zalman MS800 Plus + Asus H97-PRO + Intel Core i7-4790 + 4хDDR3-1600 8GB + Asus PCI-Ex GeForce GTX660 2GB + SSD/Intel 530 120GB + WD Caviar Blue 1TB


Оффлайн
EvangelionDeath

redbeatles, забудьте о том, что вы прочли. У Вас сервер? Такое делается, что минимизировать риски потери данных при сбоях и ускорить восстановление системы. На десктопе данные манипуляции излишни и как показывает практика – часто вредят.

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


Оффлайн
Sly_tom_cat

redbeatles, На мой взгляд у вас не оптимальная разметка SSD.

/boot полезно выносить на отдельный раздел в очень специфичных случаях: использование LVM или криптование всего диска, реже это нужно на серверах, при использовании RAID массивов, напрмер.

Для домашнего использования выносить /boot на отдельный раздел не оправдано ни разу.

Свап 16 gb – тоже странное решение. Какой у вас объем оперативки? 16Gb? Если да то своп-раздел можете смело не создавать (если позже понадобится – создадите в файле).

Итого у вас можно сделать:
1 раздел на ssd с btrfs (она довольно хорошо оптимизирована для работы на ssd) под корень (вместе с boot и home), а раздел с HDD – можно монтировать для нужд долговременного хранения/бекапов.


  • Печать

Страницы: [1]   Вверх

Добавить комментарий