от sat(12-08-2004)

рейтинг (10)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Тази статия е предимно за хора които не използват комерсиални дистрибуции, те по принцип вече имат supermount във ядрата си. По скоро е за хора които използват slackware или подобни дистрибуции, или си компилират свои.

Supermount е кръпка за линукс ядрото, която позволява за просто автоматично монтиране на различни устройства, като cd-rom-и или флопита. Няма повече да пишете mount и umount когато искате да видите какво има на даден диск.

Първото нещо което трябва да направите, е да си свалите най-новата версия на кръпката . Както виждате, най-вероятно няма версия за най-новото ядро, но както беше запял един небезизвестен наш певец: "Няма се пуашиш ....". Сваляте възможно най-новата кръпка, другото ще се нагласи ръчно. (най-новата в момента на писане е за ядро 2.6.3, а самото ядро: 2.6.7).

Сега е добре да имате и кода на ядрото (ако го нямате, отскочете до www.bg.kernel.org и си го свалете, после го разархивирайте във /usr/src/). Отидете във /usr/src/, след което, по ваше желание, направете копие на кода, за всеки случай. (примерно linux-2.6.7-orig). Тук е времето да копирате кръпката в тази директория и да я разархивирате (gunzip кръпка.gz). Влезте във /usr/src/linux-2.6.7, след което напишете това: $ patch -p1 . Разгледайте внимателно какво излиза. Тъй като тази кръпка е за по-старо ядро, някой дялове няма да се закърпят както трябва, и ще се образуват rej файлове. Вие трябва да свършите мръсната работа и да въведете тези кодове които не са успели да влезнат. За целта отворете даден rej файл, и ще видите нещо подобно.
Примерен rej файл (всъщност е fs.h.rej)

***************                                                                 
 *** 89,94 ****                                                                  
 
 /* public flags for file_system_type */                                       
 #define FS_REQUIRES_DEV 1                                                     
 #define FS_REVAL_DOT  16384   /* Check the paths ".", ".." for staleness */   
 #define FS_ODD_RENAME 32768   /* Temporary stuff; will go away as soon        
 * as nfs_rename() will be cleaned up          
 --- 89,95 ----                                                                  
 
 /* public flags for file_system_type */                                       
 #define FS_REQUIRES_DEV 1                                                     
 + #define FS_NO_SUBMNT  64      /* Prevent mounting over this filesystem */     
 #define FS_REVAL_DOT  16384   /* Check the paths ".", ".." for staleness */   
 #define FS_ODD_RENAME 32768   /* Temporary stuff; will go away as soon        
 * as nfs_rename() will be cleaned up          

Забележете реда който започва със знак +. Такива редове съдържат кода който трябва да се вмъкне. Ако сте отворили rej файла със mcedit, тези редове ще бъдат оцветени в зелено. Сега отворете файла който отговаря на rej файла (примерно fs.h), И намерете реда преди реда със кода който трябва да вмъквате. След него вмъкнете нужният ред със кода. Уверете се че другите редове от rej файла са някъде наблизо (причината поради която този код се е отхвърлил, е че файла леко се различава, и примерно след реда " #define FS_REQUIRES_DEV 1" няма да следва "#define FS_REVAL_DOT 16384" както кръпката очаква, а някой друг ред, и може би след това ще следва този). След това прибавете нужният ред към кода. Направете тази стъпка за всеки rej файл. Следва компилирането на кода. Отворете .config файла, и променете CONFIG_SUPERMOUNT=n на CONFIG_SUPERMOUNT=y/m (по ваш избор). Или ако използвате gui конфигуратор, опцията се намира във File systems -> Pseudo Filesystems. След това си компилирате и инсталирате ядрото както подобава. Ако всичко е преминало успешно, остава последната фаза на нападение. А тя е промяната на fstab файла. Тук ще ви дам пример за флопи и cd-rom. Те са почти еднакви.
 none             /mnt/floppy    supermount      fs=auto,dev=/dev/fd0,--,user,exec     0   0                                                 
 none             /mnt/cdrom     supermount      fs=auto,dev=/dev/hdd,--,ro,user,exec    0 0                                           

Както виждате, dev седи като опция за supermountfs, а самото устройство се води за none. FS в почти всички случаи ще седи на auto. Останалите опции, които мислите че трябва да за зададени следват обциите на supermoutfs като са отделени със '--' от първите опции.
След тези дребни стъпки, вече няма смисъл да пишете mount и umount. Просто слагате диска и действате.


<< Разпределяне на трафик от два интернет доставчика | IPv6. Не се плашете >>