<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Раздел полезных советов: Изменение номера inode файла в Linu...</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/59465.html</link>
    <description>Для некоторых специфических целей может понадобиться изменить номер inode у существующего файла, &lt;br&gt;либо создать файл с заранее заданным номером. Штатными средствами сделать это - задача нетривиальная, &lt;br&gt;однако с помощью модуля ядра это несложно. &lt;br&gt;&lt;br&gt;Создаем файл inode_modify.c следующего содержания: &lt;br&gt;&lt;br&gt; #include &amp;lt;linux/module.h&amp;gt;&lt;br&gt; #include &amp;lt;linux/kernel.h&amp;gt;&lt;br&gt; #include &amp;lt;linux/version.h&amp;gt;&lt;br&gt;&lt;br&gt; #include &amp;lt;linux/fs.h&amp;gt;&lt;br&gt; #include &amp;lt;linux/namei.h&amp;gt;&lt;br&gt;&lt;br&gt; #ifndef BUF_LEN&lt;br&gt; #define BUF_LEN 256&lt;br&gt; #endif&lt;br&gt;&lt;br&gt; char file&#091;BUF_LEN&#093;;&lt;br&gt; unsigned long new_num=0;&lt;br&gt;&lt;br&gt; module_param_string( name, file, BUF_LEN, 0);&lt;br&gt; module_param(new_num, ulong, 0);&lt;br&gt;&lt;br&gt;&lt;br&gt; struct nameidata nd;&lt;br&gt;&lt;br&gt; unsigned long get_number() &#123;&lt;br&gt;int error;&lt;br&gt;error = path_lookup( file, 0, &amp;nd);&lt;br&gt;printk( KERN_ALERT &quot;name = &#037;s&#092;n&quot;, file);&lt;br&gt;if(error) &#123;&lt;br&gt;printk( KERN_ALERT &quot;Can&apos;t access file&#092;n&quot;);&lt;br&gt;return -1;&lt;br&gt;&#125;&lt;br&gt; #if LINUX_VERSION_CODE &amp;gt;= KERNEL_VERSION(2,6,25)&lt;br&gt;return nd.path.dentry-&amp;gt;d_inode-&amp;gt;i_ino;&lt;br&gt; #else &lt;br&gt;return nd.dentry-&amp;gt;d_inode-&amp;gt;i_ino;&lt;br&gt; #endif&lt;br&gt; &#125;&lt;br&gt;&lt;br&gt; unsigned </description>

<item>
    <title>Изменение номера inode файла в Linux (dmitry)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/59465.html#10</link>
    <pubDate>Tue, 06 Oct 2009 08:15:16 GMT</pubDate>
    <description>крайне бесполезный и к томуже крайне ОПАСНЫЙ хак.&lt;br&gt;Бесполезный потому сразу-же после изменения номера инода его могут выкинуть из памяти (если его не держит какой нибудь файл)&lt;br&gt;Опасный потому что  в лучшем случае приведет к срабатыванию  какого нибудь BUG_ON(), а в хучшем разнесет вашу ФС на клочки. Например при попытке записи в файл мы пытаясь выделить блок попадем сюда. ext3_get_inode_block(inode-&amp;gt;i_sb, inode-&amp;gt;i_ino, iloc)&lt;br&gt;Так что если уж очень хочется использовать этот способ то строго запретить запись через immutable&lt;br&gt;или еще лучше перевести ФС в RO режим.&lt;br&gt;&lt;br&gt;А если нужен нормальный а не временный эффект с возможностью записи то стоит использовать e2fslib&lt;br&gt;(в случае etx234)  где можно выполнять любые операции с инодом&lt;br&gt;А точнее выделить инод с нужным номером и скопировать в него i_blocks с исходного инода. Это будет работать по факту такой подхот используется online-defrag тулзой для etx4&lt;br&gt;&lt;br&gt;-dmonakhov&lt;br&gt;</description>
</item>

<item>
    <title>Изменение номера inode файла в Linux (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/59465.html#9</link>
    <pubDate>Fri, 02 Oct 2009 20:23:23 GMT</pubDate>
    <description>&amp;gt;Какое у вас ядро и ФС? Такой сценарий у меня на 2.6.30.8-64.fc11.i586 &lt;br&gt;&lt;br&gt;2.6.32-rc1&lt;br&gt;</description>
</item>

<item>
    <title>Изменение номера inode файла в Linux (Victor)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/59465.html#8</link>
    <pubDate>Fri, 02 Oct 2009 10:01:46 GMT</pubDate>
    <description>Какое у вас ядро и ФС? Такой сценарий у меня на 2.6.30.8-64.fc11.i586 и ext3 вполне работает: &lt;br&gt;&lt;br&gt;&#091;del&#064;leshuk inode_modify&#093;$ &amp;gt;ino1&lt;br&gt;&#091;del&#064;leshuk inode_modify&#093;$ &amp;gt;ino2&lt;br&gt;&#091;del&#064;leshuk inode_modify&#093;$ ls -i1 ino&#091;0-9&#093;&lt;br&gt;1142265 ino1&lt;br&gt;1142266 ino2&lt;br&gt;&#091;del&#064;leshuk inode_modify&#093;$ sudo insmod ./inode_modify.ko name=ino2 new_num=1142265&lt;br&gt;&#091;del&#064;leshuk inode_modify&#093;$ ls -i1 ino&#091;0-9&#093;&lt;br&gt;1142265 ino1&lt;br&gt;1142265 ino2&lt;br&gt;</description>
</item>

<item>
    <title>Изменение номера inode файла в Linux (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/59465.html#7</link>
    <pubDate>Thu, 01 Oct 2009 17:40:59 GMT</pubDate>
    <description>pavel&#064;amd64:/work/tmp&amp;gt; &amp;gt; ino1&lt;br&gt;pavel&#064;amd64:/work/tmp&amp;gt; &amp;gt; ino2&lt;br&gt;pavel&#064;amd64:/work/tmp&amp;gt; ls -i1 ino&#091;0-9&#093;&lt;br&gt;&lt;br&gt;2924453 ino1&lt;br&gt;2924454 ino2&lt;br&gt;&lt;br&gt;pavel&#064;amd64:/work/tmp&amp;gt; sudo /sbin/insmod ./ino.ko name=/work/tmp/ino2 new_num=2924453&lt;br&gt;&lt;br&gt;pavel&#064;amd64:/work/tmp&amp;gt; dmesg &amp;#124; grep ino&lt;br&gt;&lt;br&gt;name = /work/tmp/ino2&lt;br&gt;New inode number is 2924453&lt;br&gt;&lt;br&gt;pavel&#064;amd64:/work/tmp&amp;gt; ls -i1 ino&#091;0-9&#093;&lt;br&gt;&lt;br&gt;2924453 ino1&lt;br&gt;2924454 ino2&lt;br&gt;&lt;br&gt;Тo есть хрен.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Изменение номера inode файла в Linux (Victor)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/59465.html#6</link>
    <pubDate>Thu, 01 Oct 2009 10:50:12 GMT</pubDate>
    <description>Нет, физически файл не перемещается. Изменяется только одно поле структуры struct inode.&lt;br&gt;</description>
</item>

<item>
    <title>Изменение номера inode файла в Linux (Breg)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/59465.html#5</link>
    <pubDate>Thu, 01 Oct 2009 10:32:26 GMT</pubDate>
    <description>А физически файл перемещается на диске?&lt;br&gt;Можно это использовать чтобы все файлы, нужные для readahead, переместить, чтобы ускорить доступ к ним?&lt;br&gt;</description>
</item>

<item>
    <title>Изменение номера inode файла в Linux (Breg)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/59465.html#4</link>
    <pubDate>Thu, 01 Oct 2009 09:59:43 GMT</pubDate>
    <description>Ээээ... хорошего о себе мнения автор )))&lt;br&gt;См. MODULE_AUTHOR&lt;br&gt;</description>
</item>

<item>
    <title>Изменение номера inode файла в Linux (Victor)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/59465.html#3</link>
    <pubDate>Thu, 01 Oct 2009 08:04:09 GMT</pubDate>
    <description>Я это использовал в целях репродакшна специфической ситуации для тестирования.&lt;br&gt;&lt;br&gt;/* Тестер я */&lt;br&gt;</description>
</item>

<item>
    <title>Изменение номера inode файла в Linux (Рус)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/59465.html#2</link>
    <pubDate>Wed, 30 Sep 2009 19:55:05 GMT</pubDate>
    <description>Не в обиду автору - в целях обмана rkhunter и прочих tripwire.&lt;br&gt;</description>
</item>

</channel>
</rss>
