Periodice, ut ad Centrum Distributionem Mediam moveat, convenio ad varias magnas turmas, maxime Petropoli et Moscuae, ob locum DevOps. Animadverti multas societates (multas societates bonas, exempli gratia Yandex) duas similes quaestiones interrogare;
- quid inode;
- propter quam causam disci potest scribere errorem (vel exempli gratia: cur ex spatio orbis curras, eadem est essentia).
Ut saepe fit, certo scio me hoc loco bene nosse, sed ubi primum exponere coepi, apparuit hiatus cognitionis. Ut scientiam meam systematizem, hiatus imple et me ipsum non pudet amplius, hunc articulum scribo, fortasse alicui usui erit.
Incipiam ab imo, i.e. a ferrea coegi (pulsuras, SSDs et alia moderna repellemus; exempli gratia, consideremus quemlibet 20 vel 80 cisium antiquum pellere, cum magnitudo obstructionum 512 bytes est).
Coegi ferrea nescit spatium suum per byte compellare, sub condicione in caudices divisum est. Clausus numerus incipit ab 0.
Ut ex figura videri potest, signavi LBA cuneos ut planum HDD. Obiter videre potes quantam magnitudinem orbis tuus hic habeat:
root@ubuntu:/home/serp# blockdev --getpbsz /dev/sdb
512
Planum superius est partitio, unum pro toto orbe (iterum pro simplici). Saepissime duo genera partitionis notae adhibentur: msdos et auimos. Itaque, msdos forma vetus est quae orbes usque ad 2Tb sustinet, auimus est nova forma appellandi capax ad 1 zettabyte de 512 byte cuneos. In nostro casu habemus partitionem generis msdos, ut ex figura videri potest, partitio cum clausula N. 1, incipit, dum nulla ponitur pro MBR.
In prima partitione systema fasciculi ext2 creavi, cuius defectus moles 4096 bytes est, quae etiam in figura resultat. Tabellam ratio magnitudinis inspicere potes sic:
root@ubuntu:/home/serp# tune2fs -l /dev/sdb1
tune2fs 1.42.9 (4-Feb-2014)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: a600bf40-f660-41f6-a3e6-96c303995479
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype 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: 65536
Block count: 261888
Reserved block count: 13094
Free blocks: 257445
Free inodes: 65525
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 63
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Fri Aug 2 15:02:13 2019
Last mount time: n/a
Last write time: Fri Aug 2 15:02:14 2019
Mount count: 0
Maximum mount count: -1
Last checked: Fri Aug 2 15:02:13 2019
Check interval: 0 (<none>)
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
Default directory hash: half_md4
Directory Hash Seed: c0155456-ad7d-421f-afd1-c898746ccd76
Parametro nobis opus est "Block mole".
Nunc pars iucunda est quomodo file tabellam /home/serp/testabilem legere? Scapus constat ex uno vel pluribus stipitibus fasciculi in quibus eius notitia reponitur. Sciens tabella nominis, quomodo inveniat? Quod caudices debeo legere?
Haec ubi inodes veniunt in manus. Ratio fasciculi ext2fs "mensam" habet quae informationes omnium inodis continet. Numerus inodorum in casu ext2fs positus est cum ratio lima creandi. Numeros debitos in "Inode comite" parametri tune2fs output spectamus, i.e. 65536 frusta diximus. Inodo informationes quae nobis necessariae sunt continet: indicem systematis fasciculi caudices pro tabella quaerimus. Quomodo invenire numerum inode pro lima data?
Nomen correspondentium et numerus inode continentur in indicem, et directorium in ext2fs est speciale genus documenti, i.e. etiam suum inode numerum habet. Ad hunc circulum vitiosum frangendum, numerus inode numerus "2" certus "2" directorio radicis assignatus est. Intueamur contenta inode numero II:
root@ubuntu:/# debugfs /dev/sdb1
debugfs 1.42.9 (4-Feb-2014)
debugfs: stat <2>
Inode: 2 Type: directory Mode: 0755 Flags: 0x0
Generation: 0 Version: 0x00000000:00000002
User: 0 Group: 0 Size: 4096
File ACL: 0 Directory ACL: 0
Links: 3 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x5d43cb51:16b61bcc -- Fri Aug 2 16:34:09 2019
atime: 0x5d43c247:b704301c -- Fri Aug 2 15:55:35 2019
mtime: 0x5d43cb51:16b61bcc -- Fri Aug 2 16:34:09 2019
crtime: 0x5d43b5c6:00000000 -- Fri Aug 2 15:02:14 2019
Size of extra inode fields: 28
BLOCKS:
(0):579
TOTAL: 1
Ut videre potes, directorium quo indigemus numero clausus 579. In eo inveniemus numerum nodi pro folder home, et sic in catena usque dum in serp presul videmus numerum nodi pro tabella petita. Si subito quis inspiciat utrum numerus recte sit et an res necessariae notitiae sint, non difficile est. Facimus:
root@ubuntu:/# dd if=/dev/sdb1 of=/home/serp/dd_image bs=4096 count=1 skip=579
1+0 records in
1+0 records out
4096 bytes (4,1 kB) copied, 0,000184088 s, 22,3 MB/s
root@ubuntu:/# hexdump -c /home/serp/dd_image
In output nomina tabulariorum in indicem legere potes.
Venio ergo ad principalem quaestionem: "quas ob causas potest memoria memoriae accidere?"
Naturaliter hoc fiet si nullae sunt impedimenta liberae in tabella systematis relictae. Quid in hoc casu fieri potest? Praeter manifestam "quidquid superfluum delere", memineris debes in ext2,3 et 4 fasciculi systematibus talem rem esse ac "comitem scandalum reservatum". Si recensitum supra spectes, tales cuneos habemus 13094. Hae caudices writable tantum a radice usoris sunt. sed si opus est ut cito rem solvas, solutionem temporalem omnibus facere potes, per aliquod spatium vacuum;
root@ubuntu:/mnt# tune2fs -m 0 /dev/sdb1
tune2fs 1.42.9 (4-Feb-2014)
Setting reserved blocks percentage to 0% (0 blocks)
Illae. per defaltam, habes spatium 5% orbis ad scribendum non available, et dato volumine orbis hodierni, hoc centum gigabytarum esse possunt.
Quid aliud fieri potest? Poterit etiam esse cuneos liberos, sed non plures nodes. Hoc plerumque evenit si fasciculum fasciculi in systematis tui fasciculi habeas qui minora sunt quam ratio limae scandali magnitudine. Cum 1 inode impenditur in 1 fasciculi seu directorii, et in summa habemus (pro data systemate fasciculi) 65536 - condicio plus quam realistica. Id clare perspici potest e praecepto e output;
serp@ubuntu:~$ df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 493K 480 492K 1% /dev
tmpfs 493K 425 493K 1% /run
/dev/xvda1 512K 240K 273K 47% /
none 493K 2 493K 1% /sys/fs/cgroup
none 493K 2 493K 1% /run/lock
none 493K 1 493K 1% /run/shm
none 493K 2 493K 1% /run/user
/dev/xvdc1 320K 4,1K 316K 2% /var
/dev/xvdb1 64K 195 64K 1% /home
/dev/xvdh1 4,0M 3,1M 940K 78% /var/www
serp@ubuntu:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 2,0G 4,0K 2,0G 1% /dev
tmpfs 395M 620K 394M 1% /run
/dev/xvda1 7,8G 2,9G 4,6G 39% /
none 4,0K 0 4,0K 0% /sys/fs/cgroup
none 5,0M 0 5,0M 0% /run/lock
none 2,0G 0 2,0G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvdc1 4,8G 2,6G 2,0G 57% /var
/dev/xvdb1 990M 4,0M 919M 1% /home
/dev/xvdh1 63G 35G 25G 59% /var/www
Sicut clare apparet in partitione /var/www, numerus clausorum liberorum in systematis tabellae et numerus nodis liberarum multum variant.
Si ex inodis curris, carmina tibi non dicam, quia... nullae sunt (si fallo, sciam). Itaque partitiones in quibus parvae tabulae multiplicantur, ratio tabellae sapienter eligere debes. Exempli gratia: btrfs inodes finire non possunt, quia Novae dynamice creatae sunt si necesse est.
Source: www.habr.com