я бы заметил что за годы использования разных дистрибутивов я пришёл к тому что именно slackware в его первозданном виде является самым удобоваримым понятным и правильным дистрибутивом, а все остальные кривые и неправильно сделанные.
И именоо в slackware проще всего использовать новые приложения и функции.
поэтому я хочу рассказать как легко и беззаботно переконвертировать корень в новую файловую систему, которую ещё не все успели внедрить а мы уже пользуем
прежде всего хочу обратить внимание что этот фокус я провернул на slackware 12.2 но впринципе это без проблем можно сделать и в более старых версиях.
Для этого убедитесь что вы имеете вресию e2fsprogs не ниже 1.41.3. Если ваша версия ниже чем 1.41.3 то на сегодняшний день последняя версия находится тут:
e2fsprogs-1.41.4.tar.gz
наберите комманду tune2fs без опций чтобы узнать версию.
Код: Выделить всё
root@slack:~# tune2fs
tune2fs 1.41.3 (12-Oct-2008)если версия ниже необходимо скачать пакет указанный по ссылке выше и собрать его с опцией --prefix=/
Код: Выделить всё
./configure --prefix=/
make
make installесли теперь версия правильная, можно приступать к сборке ядра.
Если вы новичок и ещё плохо конфигурируете ядро воспользуйтесь старым конфигом.
возьмите новое ядро с сайта kernel.org распакуйте его в /usr/src и создайте симлинк. в моём случае это ядро 2.6.28.7
перейдите в директорию со свежим ядром и наберите
Код: Выделить всё
zcat /proc/config.gz > .configтеперь у вас обеспечен дефолтный дистрибутивный конфиг
наберите комманду
Код: Выделить всё
make menuconfigперейдите в пункт File systems
и включите там
The Extended 4 filesystem
можете выходить и на предложение сохранить конфиг - сохраняйте
соберите и установите ядро коммандами
Код: Выделить всё
make
make modules_install
make installкогда дело будет сделано перезагрузитесь. У вас должно будет прогрузится новое ядро.
теперь когда ядро прогрузилось откройте любимым редактором файл /etc/fstab и в строчке, где указан корень системы поменяйте ext3 на ext4.
Наберите комманду
Код: Выделить всё
telinit 1подождите завершения всех процессов.
Теперь по замыслу корневая файловая система у вас должна быть смонтирована в режиме read only.
для подстраховки я набрал комманду
Код: Выделить всё
mount -o remount,ro /dev/root /теперь даже если mount показывает что система смонтирована как rw, она на самом деле смонтирована как ro. в этом можно убедится попытавшись создать файл или директорию. консоль должна ругнуться что система read only
теперь переконвертируйте корень в ext4 коммандой
Код: Выделить всё
tune2fs -O extents /dev/rootтак же после extents вы можете добавить опции dir_index и uninit_bg
первая ускорит просмотр больших директорий, вторая должна сократить время проверки раздела утилитой fsck. Как описано в документации после добавления последней опции к файловой системе, она только первый раз будет проверятся полностью, после чего будет добавлен некий high watermark, который в последствии будет сокращать время проверки.
если всё удачно запустите
Код: Выделить всё
fsck -pf /dev/rootэто действие обязательно!
когда процесс закончится наберите reboot чтобы перезагрузиться
во время написания сего хауту я рассчитывал что у вас загрузчик lilo.
Если же у вас загрузчик grub то вам нужно было изначально собирать его с поддержкой ext4
патч для граба 0.97 можно легко найти на просторах интернета или в багтраке и портах gentoo.
После перезагрузки у вас будет ext4
Код: Выделить всё
root@slack:~# mount
/dev/root on / type ext4 (rw,barrier=1,data=ordered)Несложно, правда?
Отдельно хочу рассказать о безболезненном переводе slackware на libata
уже большинство дистрибутивов работают с ним по умолчанию.
тут я надеюсь что вы уже опытный пользователь и разбираетесь в оборудовании которое торчит у вас внутри компьютера.а так же хотя бы примерно знаете как конфигурировать ядро.
для начала выясните какой у вас чипсет. проще всего выяснить что вам нужно набрав комманду lspci и найдя там строчку типа
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]
значит в качестве ide интерфейса выступает sis.
Перейдите в директорию с ядром и запустите конфигуратор.
перейдите в Device drivers и начисто отключите весь ATA/ATAPI/MFM/RLL support
вместо него включите Serial ATA (prod) and Parallel ATA (experimental) drivers
зайдите в оный комплект драйверов и найдите свой контроллер.
в моём случае это SiS PATA support
потому что у меня иде диск на стареньком ноуте.
Да и вообще вся инструкция касается в основном ide устройств. Насколько я помню сата девайсы уже определяются в слаке как sd*
ещё хорошим тоном в случае сата устройств является включение опции AHCI SATA support
Этого в принципе должно быть достаточно. Если правильно угадан и включен контроллер (руководствуясь выводу lspci )
значит должно заработать. Собирайте ядро.
Теперь самое интересное. Когда ядро собрано, нам нужно очень точно просчитать каким окажется корневой раздел после перезагрузки.
Объясняю. Допустим у вас есть 1 идешный HDD и один идешный DVD(CD) привод. допустим привод поключен как primary master а хард как secondary master.
Тогда по умолчанию slackware будет видеть привод как hda и диск как hdc
если диск будет покдлючен как secondary slave то он будет виден как hdd. Надеюсь аналогия понятна.
поэтому если у вас система стоит допустим на secondary master диске и больше дисков нет, то разделы будут (для примера) hdc1 hdc2 hdc3....
Учтите, что после перезагрузки DVD(CD) привод будет уже виден как /dev/sr0
а все харды будут именоваться начиная с /dev/sda
поэтому если у вас в системе всего лишь один диск то он будет /dev/sda а не /dev/sdc! и ни какой либо ещё другой.
если дисков два то они будут именоваться начиная с высшего по ide каналам.
например если 1 диск стоит на primary master и другой на secondary master то после перезагрузки они будут
primary master - sda, secondary master - sdb!
Надеюсь я всё подробно объяснил и вам не придётся прибегать к помощи всяких live-cd
Если вы полностью уверены в том что поняли что я только что написал - инсталируйте ядро коммандой make install.
пока разделы ещё не тронуты лило скушает новое ядрышко. Теперь измените файл fstab в соответствии своей системе.
Если у вас только один диск то можете смело менять ваши /dev/hd(abcd, нужное оставить) на /dev/sda и оставив соответсвенно циферку раздела как была.
Например у меня был в родной слаквари корень на /dev/hdc3 а получился на /dev/sda3
После чего в /etc/lilo.conf
меняем root = на правильный раздел.
После перезагрузки все диски должны работать уже по новому через libata.
Если что-то получилось. не волнуйтесь и не паникуйте,
могут случится две вещи: первое - лило будет ругаться на неправильный параметр root
тогда ядро выдаст кернел паник.
Тогда перезагрузитесь и при запуске lilo нажмите tab и напишите root = /dev/правильное_устройство.
и система загрузится. подправьте /etc/lilo.conf и наберите комманду lilo чтобы он скушал конфиг
или же вы могли указать неправильный девайс в fstab.
в этом случае система загрузится но не смонтирует корень и выбросит вас в консоль. Со мной такое случалось в далёком прошлом и я это решил с помощью родного же диска slackware. Просто загрузился, смонтировал корень и подправил fstab.
Если тру профи смогли это как-то обойти пусть дополнят хаутушку. Но на самом деле такое может возникнуть только если вы изначально неправильно написали корневой раздел в fstab и lilo.conf. Если вы внимательно прочитали то что я написал и поняли - с вами этого не случится.
Если же случилось вообще страшное и вы не включили поддержку своего контроллера то надо будет как-то загрузится с образа vmlinuz.old который будет лежать в /boot/ но я сомневаюсь что такое может случится, просто дам совет, если вы сомневаетесь, какой у вас котроллер и в меню Serial ATA (prod) and Parallel ATA (experimental) drivers не знаете точно то ли вы включили, то лучше включите побольше. Это ничего страшного не сделает. но даст точную гарантию того что вы попадёте в своё оборудование. Но на самом деле там не так уж и сложно разобраться и понять что именно нужно. Ваш покорный слуга никогда ещё не ошибался. Чего и вам желаю.
Как видите slackware очень простой и гибкий дистрибутив. Тот кто хоть раз почувствовал всю его мощь больше никогда не найдёт для себя ничего более подходящего. Наверное про этот дистрибутив и надо сказать что вот он! настоящий Linux в том виде в котором он должен быть.