<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>32679</bug_id>
          
          <creation_ts>2016-10-28 17:42:45 +0300</creation_ts>
          <short_desc>GPT-разделы тоже надо выравнивать на границу мегабайта</short_desc>
          <delta_ts>2016-11-02 19:43:10 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>alterator-vm</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://git.altlinux.org/gears/e/evms.git?p=evms.git;a=commitdiff;h=0298c9007d712b36a1f0eacd840a0e4d28025893</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>distro-blocker</keywords>
          <priority>P3</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>23848</dependson>
          <blocked>16000</blocked>
    
    <blocked>30940</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Shigorin">mike</reporter>
          <assigned_to name="Олег Соловьев">mcpain</assigned_to>
          <cc>aen</cc>
    
    <cc>boyarsh</cc>
    
    <cc>cas</cc>
    
    <cc>imz</cc>
    
    <cc>mcpain</cc>
    
    <cc>rider</cc>
    
    <cc>sbolshakov</cc>
    
    <cc>sem</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>159554</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-10-28 17:42:45 +0300</bug_when>
    <thetext>По аналогии с #23848 надо сделать выравнивание начала создаваемых разделов на границу мегабайта/2048s (4K-диски, SSD, striped RAID).

Похоже, plugins/gpt/gptsegmgr.c до сих пор грезит цилиндрами.
Коммит для dos ptbl: 0298c9007d712b36a1f0eacd840a0e4d28025893</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159560</commentid>
    <comment_count>1</comment_count>
      <attachid>6849</attachid>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-10-28 22:45:14 +0300</bug_when>
    <thetext>Created attachment 6849
для архива: не сработало

Кажется, победил по мотивам 0298c9007d712b36a1f0eacd840a0e4d28025893.
Надо патч почистить от первой попытки, в которой попытался проехаться на работающих по цилиндрам функциях -- прилагаю её на всякий...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159562</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-10-28 23:07:48 +0300</bug_when>
    <thetext>Просьба к заинтересованным глянуть http://webery.altlinux.org/task/171543

Патч: http://git.altlinux.org/people/mike/packages/?p=evms.git;a=commitdiff;h=fb0b2536cca20fc3ee718900c4670481495078d4

Вот как выглядят у меня два созданных acc гигабайтных раздела на предварительно созданной gdisk&apos;ом GPT:

# fdisk -l /dev/sdb
Диск /dev/sdb: 111,8 GiB, 120034123776 байт, 234441648 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: gpt
Идентификатор диска: 2798949D-1C1E-4025-A350-4FC351F43A95

Устр-во    начало Конец Секторы Размер Тип
/dev/sdb1     2048 2097151 2095104  1023M Microsoft basic data
/dev/sdb2  2097152 4192255 2095104  1023M Microsoft basic data
# parted /dev/sdb align-check opt 2         
2 выровнен
# parted /dev/sdb align-check opt 1
1 выровнен
# _</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159670</commentid>
    <comment_count>3</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2016-11-01 21:29:49 +0300</bug_when>
    <thetext>evms-2.5.5-alt35.3 -&gt; sisyphus:

* Fri Oct 28 2016 Michael Shigorin &lt;mike@altlinux&gt; 2.5.5-alt35.3
- gpt plugin: just round_up_to_min_boundary() of 1MB/2048s either
  (closes: #32679)

* Fri Oct 28 2016 Michael Shigorin &lt;mike@altlinux&gt; 2.5.5-alt35.2
- dos plugin: just round_up_to_min_boundary() of 1MB/2048s

* Thu Oct 27 2016 Michael Shigorin &lt;mike@altlinux&gt; 2.5.5-alt35.1
- revert 2.5.5-alt29 patches by timonbl4@ to avoid collisions

* Thu Oct 27 2016 Michael Shigorin &lt;mike@altlinux&gt; 2.5.5-alt35
- apply stanv@&apos;s patch, see #26925 comment 5 (closes: #26925)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159683</commentid>
    <comment_count>4</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2016-11-02 13:55:41 +0300</bug_when>
    <thetext>В VirtualBox у меня:
# fdisk -l /dev/sda
Диск /dev/sda: 25 GiB, 26834665472 байт, 52411456 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: gpt
Идентификатор диска: 810B0A4C-A02B-DB4B-B210-11AC14C4ABD0

Устр-во    начало Конец Секторы Размер Тип
/dev/sda1      2048   524287   522240   255M EFI
/dev/sda2    524288   538623    14336     7M BIOS boot
/dev/sda3    538624  3604479  3065856   1,5G Microsoft basic data
/dev/sda4   3604480 35230544 31626065  15,1G Microsoft basic data
/dev/sda5  35231744 39178239  3946496   1,9G Microsoft basic data
/dev/sda6  39178240 43698175  4519936   2,2G Microsoft basic data
/dev/sda7  43698176 47480831  3782656   1,8G Microsoft basic data
/dev/sda8  47480832 52402175  4921344   2,4G Microsoft basic data
[root@localhost ~]# parted /dev/sda
GNU Parted 3.2.46-e4ae
Используется /dev/sda
Добро пожаловать в GNU Parted! Наберите &apos;help&apos; для просмотра списка команд.
(parted) align-check opt 1                                                
1 выровнен
(parted) align-check opt 2
2 выровнен
(parted) align-check opt 3
3 выровнен
(parted) align-check opt 4
4 выровнен
(parted) align-check opt 5
5 выровнен
(parted) align-check opt 6
6 выровнен
(parted) align-check opt 7
7 выровнен
(parted) align-check opt 8
8 выровнен</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159685</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2016-11-02 14:28:41 +0300</bug_when>
    <thetext>Спасибо!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159696</commentid>
    <comment_count>6</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-11-02 19:43:10 +0300</bug_when>
    <thetext>Поправил крайние случаи в свежих изменениях, прошу протестировать task 171819 и перечитать код (чем показывать патчи -- там 3 содержательных, остальные косметичесие -- проще чистый код этого кусочка показать):


/*
 *  End segment on a minimum alignment boundary.
 */
{
  const lba_t next_free_lba = freespace-&gt;start + sector_offset + size;
  seg_end_lba = ( next_free_lba &gt; seg_start_lba ) ? next_free_lba - 1 : seg_start_lba;

  const lba_t rounded_next_free_lba = round_down_to_min_boundary(next_free_lba);
  if ( rounded_next_free_lba &gt; seg_start_lba )
    seg_end_lba = rounded_next_free_lba - 1;
}</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6849</attachid>
            <date>2016-10-28 22:45:14 +0300</date>
            <delta_ts>2016-10-28 22:45:14 +0300</delta_ts>
            <desc>для архива: не сработало</desc>
            <filename>evms-gpt-helpers.h.diff</filename>
            <type>text/plain</type>
            <size>2646</size>
            <attacher name="Michael Shigorin">mike</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL3BsdWdpbnMvZ3B0L2hlbHBlcnMuaCBiL3BsdWdpbnMvZ3B0L2hlbHBlcnMu
aAppbmRleCBkNzQ5YTY3Li5kZDkxMGFkIDEwMDY0NAotLS0gYS9wbHVnaW5zL2dwdC9oZWxwZXJz
LmgKKysrIGIvcGx1Z2lucy9ncHQvaGVscGVycy5oCkBAIC03Miw3ICs3Miw5IEBAIGNoYXIgKiAg
ICAgICAgICAgICAgZ3VpZF90b19zdHJpbmcoIGd1aWRfdCAqaWQgKTsKICAgICAgICAgI2RlZmlu
ZSBNQVhfSEVBRFMgICAgIDI1NAogICAgICAgICAjZGVmaW5lIE1BWF9TRUNUT1JTICAgNjMKIAor
Lyogd2UgZG9uJ3QgYWN0dWFsbHkgZG8gY3lsaW5kZXJzIGFueW1vcmUsIGFsaWduIGZvciAxTUIg
Ym91bmRhcnkgKi8KIAorCSNkZWZpbmUgQk9VTkRBUllfSU5fU0VDVE9SU181MTIgMjA0OAogCiAv
KgogICogIENhbGxlZCB0byByZXR1cm4gdGhlIExvZ2ljYWwgRGlzayB0aGF0IGEgc2VnbWVudCBi
ZWxvbmdzIHRvLgpAQCAtMjQzLDYgKzI0NSwxMyBAQCBzdGF0aWMgaW5saW5lIGludCBMQkFfdG9f
UHRhYmxlX0NIUyggTE9HSUNBTERJU0sgKmxkLCBsYmFfdCAgbGJhLCBjaHNfdCAgKmNocyApCiAg
Ki8KIHN0YXRpYyBpbmxpbmUgYm9vbGVhbiAgc3RhcnRzX29uX2N5bGluZGVyX2JvdW5kYXJ5KCBM
T0dJQ0FMRElTSyAqbGQsIGxiYV90IGxiYSApCiB7CisKKwkvLyBqdXN0IGNoZWNrIGFnYWluc3Qg
MjA0OHMgYm91bmRhcnkKKwlpZiAoIGxiYSAlIEJPVU5EQVJZX0lOX1NFQ1RPUlNfNTEyID09IDAg
KQorCQlyZXR1cm4gVFJVRTsKKwllbHNlCisJCXJldHVybiBGQUxTRTsKKwogICAgICAgICBjaHNf
dCAgY2hzOwogCiAgICAgICAgIGlmICggTEJBdG9DSFMoIGxkLCBsYmEsICZjaHMgKSApIHsKQEAg
LTI2Niw2ICsyNzUsMTMgQEAgc3RhdGljIGlubGluZSBib29sZWFuICBzdGFydHNfb25fY3lsaW5k
ZXJfYm91bmRhcnkoIExPR0lDQUxESVNLICpsZCwgbGJhX3QgbGJhICkKICAqLwogc3RhdGljIGlu
bGluZSBib29sZWFuICBlbmRzX29uX2N5bGluZGVyX2JvdW5kYXJ5KCBMT0dJQ0FMRElTSyAqbGQs
IGxiYV90IGxiYSApCiB7CisKKwkvLyBqdXN0IGNoZWNrIGFnYWluc3QgMjA0OHMgYm91bmRhcnkK
KwlpZiAoIGxiYSAlIEJPVU5EQVJZX0lOX1NFQ1RPUlNfNTEyID09IEJPVU5EQVJZX0lOX1NFQ1RP
UlNfNTEyIC0gMSApCisJCXJldHVybiBUUlVFOworCWVsc2UKKwkJcmV0dXJuIEZBTFNFOworCiAg
ICAgICAgIGNoc190ICBjaHM7CiAgICAgICAgIERJU0tfUFJJVkFURV9EQVRBICpkaXNrX3BkYXRh
ID0gZ2V0X2dwdF9kaXNrX3ByaXZhdGVfZGF0YSggbGQgKTsKIApAQCAtMzAwLDYgKzMxNiwxMSBA
QCBzdGF0aWMgaW5saW5lIHNlY3Rvcl9jb3VudF90IGdldF9jeWxpbmRlcl9zaXplKCBzdG9yYWdl
X29iamVjdF90ICpsZCApCiAgICAgICAgIHNlY3Rvcl9jb3VudF90ICAgICBzZWN0b3JzX3Blcl9j
eWxpbmRlcj0wOwogICAgICAgICBESVNLX1BSSVZBVEVfREFUQSAqZGlza19wZGF0YT1OVUxMOwog
CisJLy8gYWxpZ24gdG8gMU1CIGJvdW5kYXJ5LCBjeWxpbmRlcnMgYXJlIGxvbmcgZGVhZAorCWlm
IChsZCkKKwkJcmV0dXJuIEJPVU5EQVJZX0lOX1NFQ1RPUlNfNTEyOworCWVsc2UKKwkJcmV0dXJu
IDA7CiAKICAgICAgICAgaWYgKGxkKSB7CiAKQEAgLTMzMCw2ICszNTEsMTggQEAgc3RhdGljIGlu
bGluZSBsYmFfdCAgcm91bmR1cF90b190cmFja19ib3VuZGFyeSggTE9HSUNBTERJU0sgKmxkLCBs
YmFfdCBsYmEgKQogewogICAgICAgICBsYmFfdCAgICAgICAgICAgICAgbmV3X2xiYSA9IGxiYTsK
ICAgICAgICAgc2VjdG9yX2NvdW50X3QgICAgIGV4dHJhX3NlY3RvcnM9MDsKKworCWV4dHJhX3Nl
Y3RvcnMgPSBsYmEgJSBCT1VOREFSWV9JTl9TRUNUT1JTXzUxMjsKKworCWlmICggZXh0cmFfc2Vj
dG9ycyAhPSAwKSB7CisJCW5ld19sYmEgPSBsYmEgKyAoIEJPVU5EQVJZX0lOX1NFQ1RPUlNfNTEy
IC0gZXh0cmFfc2VjdG9ycyk7CisJfQorCisJTE9HX0RFQlVHKCJBTFQ6IE5lYXJlc3QgdXBwZXIg
Ym91bmRhcnkgdG8gJSJQUkl1NjQiIGlzICUiUFJJdTY0IlxuIiwgbGJhLCBuZXdfbGJhKTsKKwor
ICAgICAgICByZXR1cm4gbmV3X2xiYTsKKworCiAgICAgICAgIHNlY3Rvcl9jb3VudF90ICAgICBz
ZWN0b3JzX3Blcl90cmFjaz0wOwogICAgICAgICBESVNLX1BSSVZBVEVfREFUQSAqZGlza19wZGF0
YTsKIApAQCAtMzYzLDYgKzM5NiwxNyBAQCBzdGF0aWMgaW5saW5lIGxiYV90ICByb3VuZHVwX3Rv
X2N5bGluZGVyX2JvdW5kYXJ5KCBMT0dJQ0FMRElTSyAqbGQsIGxiYV90IGxiYSApCiB7CiAgICAg
ICAgIGxiYV90ICAgICAgICAgICAgICBuZXdfbGJhID0gbGJhOwogICAgICAgICBzZWN0b3JfY291
bnRfdCAgICAgZXh0cmFfc2VjdG9ycz0wOworCisJZXh0cmFfc2VjdG9ycyA9IGxiYSAlIEJPVU5E
QVJZX0lOX1NFQ1RPUlNfNTEyOworCisJaWYgKCBleHRyYV9zZWN0b3JzICE9IDApIHsKKwkJbmV3
X2xiYSA9IGxiYSAtIGV4dHJhX3NlY3RvcnM7CisJfQorCisJTE9HX0RFQlVHKCJBTFQ6IE5lYXJl
c3QgZG93biBib3VuZGFyeSB0byAlIlBSSXU2NCIgaXMgJSJQUkl1NjQiXG4iLCBsYmEsIG5ld19s
YmEpOworCXJldHVybiBuZXdfbGJhOworCisKICAgICAgICAgc2VjdG9yX2NvdW50X3QgICAgIHNl
Y3RvcnNfcGVyX2N5bGluZGVyOwogCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>