Вчора я виявив важкий шлях одного з "Особливості" файлова система btrfs. Це з тих причин, що я не знаю про його роботу, btrfs має тенденцію заповнювати диск більше, ніж те, що подобається командам dd або лічильники заповнення диска звичайних файлових менеджерів.
Як дізнатися, скільки місця займає ваша файлова система за допомогою btrfs
У кого є файлова система btrfs Ви зможете дізнатися, скільки додаткового місця займають ваші дані, набравши в консолі (як я вважаю root):
файлова система btrfs show /
(Замініть / іншою точкою монтування, якщо ви хочете знати простір, зайнятий в іншому розділі btrfs)
У великій перегородці це додаткове заповнення не становить великої проблеми, оскільки це дуже мало місця в порівнянні із загальним обсягом. Але в моєму випадку, де / має 22 Гб (він займає кеш-пам’ять ssd), мій жорсткий диск заповнився 8 ГБ вільно, порушуючи бази даних об / хв і тим самим відключаючи менеджер пакетів. Тож я був змушений форматувати за допомогою іншої файлової системи.
Але я не хотів перевстановлювати. Очевидно, що дані в / home можна легко зберегти, але в одній є багато програм, встановлених у /, і безліч налаштувань, які також там перебувають, тому я вирішив просто продовжити встановлення, але змінити файлову систему.
Причина, по якій я пишу це, полягає в тому, що я не знайшов жодної документації щодо того, як діяти у цих випадках. Думаю, більшість людей погоджуються на перевстановлення.
Мені довелося витратити близько 7 годин на пошук та пошук інформації в англійських посібниках, які насправді були пов’язані з іншими речами та інтуїтивним складанням частин; постійні спроби та помилки, перезавантажуючись десятки разів, щоб переконатись, що кожна річ, яку я спробував, не спрацьовувала одна за одною. Коли процес насправді був би не таким, якби мав присвячений йому посібник.
Міркування з урахуванням зміни файлової системи "/"
Перше: Я зробив цю процедуру на Fedora. Я думаю, це однаково для всіх дистрибутивів, які в основному мають спільний доступ до завантажувача GRUB2.
Другий: Цей процес є важкий для звичайного користувача (ті, хто читає це і думає, що це фігня, знають, що ви не звичайні користувачі) Люди зазвичай мають робити щось краще, ніж змінити файлову систему кореневого розділу. Якщо ви не знаєте, як слідувати цьому посібнику, ви ризикуєте втратити свою установку, і якщо вам вдасться її виконати, ви виявите, що зміна продуктивності не така вражаюча (Ну, для деяких вона є, але ви не звичайні користувачі) Я спеціально зробив це з необхідності , хоча я повинен визнати, що я один з тих, хто змушує ваш комп'ютер запускати секунду швидше.
Третій: Оскільки ця процедура не для звичайних користувачів, я припущу, що читач має певні знання про GNU / Linux і що йому не буде лінь шукати додаткову інформацію.
Процедура зміни файлової системи "/"
Якщо ви хочете змінити файлову систему з необхідності чи з нудьги, це процедура:
1. - Очевидно, що для роботи нашої нової файлової системи ми повинні мати інструменти, які допоможуть нам керувати нею, тому це перше, що ми зробимо. Файлова система, яку я до речі вибрав, була xfs, тому мені довелося встановити "Xfsprogs" y "Xfsdump". Ви встановите все, що завгодно, залежно від файлової системи, яку ви хочете використовувати.
2. - Завантажте з livecd / usb і скопіюйте весь вміст кореневого розділу на інший розділ або диск. Обраний вами метод не має значення, але справа в тому, щоб робити це з правами root, щоб не знаходити файли чи каталоги зі спеціальними дозволами.
3. - Етап, коли "/" правильно відформатовано у файловій системі, яку ми віддаємо перевагу. Методів багато, виберіть той, який вам найбільше подобається.
4. - Копію кореневого розділу, яку ми зробили, відновлюється до нового відформатованого розділу.
5. - Це момент, коли користувач повинен почати виконувати свою роль. Форматування розділу змінює ідентифікатор, який використовує операційна система, щоб знати, який розділ підключити. Це \ It \ його UUID, і ми повинні знати цей код.
Існує кілька методів, але, наприклад, у "Gparted" ми дізнаємось про це, клацнувши правою кнопкою миші на новому розділі "/" та натиснувши на "Інформація". Ми копіюємо цей код, і саме тоді ми збираємося редагувати файл / etc / fstab:
UUID = 36f3ce91-5138-4293-8571-b5b43f6b4646 / xfs за замовчуванням, noatime, відкинути, nobarrier
Це приклад, що показує рядок, який відповідає моєму абсолютно новому кореневому розділу. Код, який відображається праворуч від UUID = це те, що ми замінимо на наше UUID.
Щойно ми це зробимо, звичайно, ми повинні вказати нову файлову систему нашого розділу, xfs у моєму випадку або замініть його на вашу у випадку з іншою файловою системою. Вам також доведеться поставити нові варіанти кріплення: Якщо ви не знаєте, що поставити, поставте "За замовчуванням"; вночі збільшує продуктивність за рахунок зменшення кількості записів, відкидати зменшує кількість записів на ssd-диски, збільшуючи їх довговічність.
6. - Тут починається справді блядь, і тут я застряг. Це насправді не так складно, але документації з цього моменту майже немає.
Нам потрібно відновити меню Grub, щоб воно правильно запускало операційну систему. Я б не знав, як це зробити вручну, ви можете спробувати, як і я (змінив UUID і подібні), але нормальним буде те, що запуск ОС зупиняється в приємній і сподіваючійся "аварійній оболонці"
На щастя, інструментом володіє grub2 "Grub2-mkconfig" що автоматично виконує це завдання, беручи за посилання характеристики системи, де вона працює. Проблема полягає в тому, що, подивіться де, система, де вона працює, не є цільовою системою, і остання тимчасово не працює.
Тому нам потрібно це робити chroot і встановіть серію спеціальних розділів для запуску цього інструменту, без яких він не буде працювати. Процедура для цього погано пояснена майже у всіх місцях (що не означає, що вони не знають, як це зробити, але те, що вони думають, що ми є надрукуванням обчислень)
На щастя тут: http://askubuntu.com/questions/28099/ho … ll-kernels Я знайшов веселе пояснення про цю тему, яке узагальнитиму і перекладу:
- Кріплення / та / dev:
mount / dev / sda1 / mnt mount --bind / dev / mnt / dev
Де "sda1" замінено на відповідний кореневому розділу, якщо це не "sda1"
- Mount / boot та / boot / efi, останнє, якби ми мали розділ EFI.
mount / dev / sda2 / mnt / boot
Де "sda2" замінюється на той, що відповідає завантажувальному розділу, якщо це не "sda2"
Збірка efi не міститься у посиланні вище, це моя річ, але в цьому випадку мені це було потрібно. Якщо у вас немає розділу EFI, проігноруйте це.
mount / dev / sda3 / mnt / boot / efi
Де "sda3" замінюється на той, що відповідає завантажувальному розділу, якщо це не "sda3"
- Chroot та деякі інші речі, що насправді єдине, що я знаю про ці речі, це те, що вони необхідні:
chroot / mnt mount -t proc none / proc mount -t sysfs none / sys mount -t devpts none / dev / pts export HOME = / root export LC_ALL = C
Це моє доповнення, це може знадобитися для одного пізніше:
змонтувати -t tmpfs tmpfs / run
7. - grub2-mkconfig
Ну, це майже зірковий момент. Ми повинні шукати файл, який називається "grub.cfg", всередині завантажувального розділу. У моєму випадку його шлях /boot/efi/EFI/fedora/grub.cfg
Знайшовши, ми запускаємо в середовищі chroot:
grub2-mkconfig -o /path/a/grub.cfg
І нарешті, у нас є готове меню.
8. - Відновіть інітрамфи.
Цей крок я вважаю необхідним, але я не впевнений у цьому. Однак досить перевстановити ядро, яке ми хочемо, або виконати:
dracut --force / path / to / file / initramfs / that / we / want / to replace
Наприклад:
dracut --force /boot/initramfs-3.15.9-200.fc20.x86_64.img
Звичайно, все це в середовищі chroot. (а якщо ні, поверніться до вікна виходу, е-е ... до «аварійної оболонки»)
PS: Я забув, що робити для доступу до Інтернету в середовищі chroot, на випадок, якщо ви хочете перевстановити ядро. Наведене посилання дуже добре пояснює: Ви повинні відкрити новий термінал і скопіювати ці файли:
cp / mnt / etc / hosts /mnt/etc/hosts.old cp / etc / hosts / mnt / etc / hosts cp /etc/resolv.conf /mnt/etc/resolv.conf
9. - Отримати доступ до Інтернету:
Вам просто потрібно скопіювати наступні файли, графічно або через консоль, в останньому випадку поза середовищем chroot. Це можна зробити з іншого терміналу або вийти з середовища chroot, а потім знову ввійти.
cp / mnt / etc / hosts /mnt/etc/hosts.old cp / etc / hosts / mnt / etc / hosts cp /etc/resolv.conf /mnt/etc/resolv.conf
10. - Перевстановіть ядро:
Ми перевстановлюємо ядро в середовищі chroot за допомогою нашого менеджера пакетів
11. - Скинути AAR :: DD
Цей пункт повинен бути кінцем для "звичайних" дистрибутивів, для дистрибутивів із SELinux, як у моєму випадку, справа зайняла трохи більше часу.
Незважаючи на те, що початок дійшов до кінця, і я спробував запустити графічну систему, він цього не зробив, і коли я намагався увійти як користувач або як root, це означало б "дозвіл відмовлено".
Я щось про це читав, і, на думку однієї людини, проблемою може бути selinux, і він запропонував поставити selinux = 0 в кінці завантажувального рядка в grub.cfg, наприклад:
menuentry 'Fedora, з Linux 3.15.9-200.fc20.x86_64' --class fedora --class gnu-linux --class gnu --class os --необмежений $ menuentry_id_option 'gnulinux-3.15.9-200..fc20 .x86_64-advanced-36f3ce91-5138-4293-8571-b5b43f6b4646 '{load_video set gfxpayload = тримати insmod gzio insmod part_gpt insmod ext2 set root =' hd1, gpt2 'if [x $ feature_platform_search_hint = xy]; потім пошук --no-floppy --fs-uuid --set = root --hint-bios = hd1, gpt2 --hint-efi = hd1, gpt2 --hint-baremetal = ahci1, gpt2 1cd04509-ab7c-4074- 8bab-e170c29fe08e пошук ще --no-floppy --fs-uuid --set = root 1cd04509-ab7c-4074-8bab-e170c29fe08e fi linuxefi /vmlinuz-3.15.9-200.fc20.x86_64 root = UUID = 36f3ce91-5138 -4293-8571-b5b43f6b4646 ro rd.md = 0 rd.lvm = 0 rd.dm = 0 vconsole.keymap = en rd.luks = 0 vconsole.font = latarcyrheb-sun16 rhgb тихий selinux = 0 initrdefi /initramfs-3.15.9. 200-20.fc86.x64_XNUMX.img
Подивіться на передостанній рядок вкрай праворуч.
Я не робив цього безпосередньо, якщо не просто редагував запис завантаження в самому меню grub, так що це була тимчасова модифікація, думаю, це було зроблено натисканням «c» або «e», в меню grub ви можете зробити це. місця.
Що ж, ми робимо це і перезапускаємо, або продовжуємо завантаження.
12. - Світло в кінці тунелю.
Якщо ми не змогли безпосередньо на попередньому кроці, саме на цьому передостанньому кроці ми можемо отримати доступ до нашого звичного робочого столу. Тост за наш великий подвиг, але так SELinux Попсував, ми ще не закінчили
Нам потрібно повторно відредагувати grub.cfg, щоб видалити "selinux = 0", або просто перезавантажитись, як правило, якщо те, що ми зробили, було редагуванням запису в меню grub. Справа в тому, що ми перезавантажуємось із активованим SELinux.
Тоді наприкінці старту виходить щось, що має перекреслити політику Росії Орієнтована на SELinux, ми залишаємо це в спокої, а після закінчення він перезапуститься.
Ми побачимо, що наша система запуститься, показуючи наш звичайний робочий стіл, із активованим SELinux, зміненою нашою файловою системою та всіма нашими повністю функціональними програмами.
На цьому посібник закінчується, сподіваюся, це допоможе вам
UPDATE: Коли я зробив це вперше, я поняття не мав, і я зробив крок регенерації initramfs, а потім перевстановив ядро, і все було дуже безладно, і врешті-решт це спрацювало майже не знаючи чому, і я дав обидва варіанти однаково добре, проте регенерація initramfs не працює, і я її викреслив. Єдине, що працює, це перевстановити ядро (я підозрюю, що ядро та пакети ядра ядра у Fedora), і таким чином я змінив посібник.
І я також хочу додати, що для зміни формату файлової системи розділу / home потрібні ті самі кроки, я не знаю, чи потрібен selinux, але якщо він не працює з selinux, його тимчасово видаляють і все.
Вибране зображення взято з тут.
Мені здається, що btrfs знаходиться за пару років до дозрівання, і коли він не вдається, є інструменти для відновлення від страху, не втрачаючи даних ... ext4 все ще є повідомленням.
Що стосується роботи з chroot, у керівництві gentoo ви дуже добре пояснили:
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base/es
Я також використовую dracut для генерації initramfs, оскільки мені потрібен модуль mdadm для grub2, без якого grub2 не може знайти / dev / md0 розділ / boot.
Мені дали новий диск SSD 120G, але я не хотів ним користуватися, це дуже нова і не дуже зріла технологія, я не хочу займатися переінсталяцією системи щоразу, коли комірка в SSD пошкоджена.
Я встановив з нуля в рейді 1 два диски по 1 т, ще у квітні 2012 року ... моєму гентоциту ось-ось буде 3 роки ... хе-хе
# genlop -t gentoo-джерела | head -n3
* sys-ядро / gentoo-джерела
Ср 11 квітня 23:39:02 2012 >>> sys-kernel / gentoo-sources-3.3.1
Це процедура, яку я використовую для створення початкового оперативного диска, додаю до нього графічну тему bootsplash
та регенерувати входи grub2.
# кріплення / завантаження
# dracut - чудово »3.19.3-gentoo - сила
# splash_geninitramfs –verbose –res 1920 × 1080 –append /boot/initramfs-3.19.3-gentoo.img emerge-world
# grub -mkconfig -o /boot/grub/grub.cfg
Дякуємо, що поділилися своїм досвідом щодо btrfs.
Який друг Елав, чудова публікація в блозі та подяка товаришу "SuperYO" з форуму. Правда в тому, що щось подібне зі мною ніколи не траплялося, зовсім не, але ніколи не заважає мати такий мега-підручник, як цей.
Особисто я взагалі не вважаю BTRFS незрілим, XFS я ним не користувався, я знаю, що CentOS 7 приносить його, але до сьогоднішнього дня мені не доводилося монтувати на ньому новий сервер, тому на даний момент я не бачу настільки смішним на нього дивитися. У OpenSUSE я використовую BTRFS, але це взагалі не створювало мені проблем, навіть на SSD-дисках. Що, якби мені це коштувало світу - це SSD-кеш-диск в Unix, це справді було величезною проблемою, документація Intel вважає мене дуже незрозумілою та складною. насправді у мене тема відкрита на форумі та в інших місцях, але, мабуть, ніхто не стикався з цією темою, інакше, вони просто залишають SSD-кеш-диски, які ноутбуки приносять для чогось іншого, раптом вони ставлять їх як SWAP, щоб не змінити швидкість системи, хто її знає.
Можливо, запис щодо існуючих типів файлової системи в Unix був би вражаючим, і виклав би переваги кожного з них, я не знаю, інший також був би непоганим щодо SELinux, оскільки стільки говориться про безпеку, але я прочитав підручник в Інтернеті і скрізь вони ставлять "SELinux = Disabled", лише в "scope" вони дають поради, як дозволити програми через нього.
Зараз я більше не продовжую.
Дякуємо за вступ та привітання.
Дякую за підказку, але, zfs має всі характеристики btrfs, що для використання його в linux модуль повинен бути піднятий в ядрі, але у freebsd він поставляється за замовчуванням і не дає жодної проблеми, я рекомендую це, оскільки btrfs все ще має багато "маленьких проблем", так би мовити.
Це я чи помічаю сьогодні elav з дуже іспанським акцентом.
Я це теж помітив. Хто знатиме причину цього.
Ха-ха-ха-ха .. це те, що стаття не моя .. не кажи мені, що ти не читав перший абзац ха-ха-ха.
Тепер, коли ви це згадали ... Ні. Я навіть не помічаю.
Привіт. Якщо ви побачите запис на форумі, ви побачите, що пункт 8 закреслено, оскільки він не є дійсним, то що вам потрібно зробити, це перевстановити ядро, і я так сказав, коли редагував його 😛
Що трапляється, коли я робив це вперше, я не дуже добре знав, що роблю, і все пробував, тому заплутався 😛
І я продовжую, відбувається те, що мій попередній коментар ще не опублікований 😛
Ось чому, якщо нічого не можна викреслити в Інтернеті, було б видалити пункт 8, щоб заплутати персонал. У будь-якому випадку, найгірше, що може статися при регенерації initramfs - це те, що я отримав: абсолютно нічого не відбувається, ні доброго, ні поганого, що теж не так серйозно, але це марний крок.
Гарна стаття, якою ви поділилися, завдяки своєму досвіду я дізнався кілька нових речей 😉
Б'юся об заклад, все, що відчуття перемоги, яке ви відчували у досягненні своєї мети, значно переважало невдачі. 😉
Відкритий код дуже жіночний: він не для бажаючих.
Якщо хтось приділяє увагу, пристрасть і терпіння, щоб поглибити його принади, це дає нам найкраще від себе.
Який хороший пост забив колега superYO. Це добре.
Чому XFS замість ext4 ??
🙂
Ext4 старіє, коли кажуть ... і для написання великих даних краще xfs.
Про автора допису я ніколи не бачив, щоб журнальний btrfs заповнював / розділ
Цікаво, що я думаю, що це тому, що ти зимуєш на комп’ютері, я думаю, бо цього у мене ніколи не було! з дистрибутивами, які я використовую з samsung pro ssd, і які ніколи не траплялися зі мною.
Це не те, що помітно на середніх або великих розділах, але на розділі BTRFS розміром 20 ГБ ви можете фактично заповнити кореневий розділ фактично майже половиною вільного місця.
І це була не єдина проблема, яку він мав. Що стосується читання, диск був більш-менш коректним, але інсталяція та оновлення були дуже повільними для ssd-диска та звичайного жорсткого диска, що було основною неприємністю.
Я звинувачую гібридний блок, який я маю в ноутбуці, тому що в інших місцях, де у мене встановлена Fedora з btrfs, у мене немає проблем, і він працює швидко і якісно, за винятком мого головного комп'ютера, який має гібридний блок, як я вже сказав. Тепер з обома розділами з XFS цей комп'ютер поводиться набагато краще.
З якого часу це 10 хвилин с DesdeLinux?, я ледве усвідомлюю, що це там o_o
Деякий час тому 😀
Я думаю, це буде дивно, але я довго досліджував це, мені було так лінь, що я не хотів піднімати настрій. Дякую за інформацію, я хочу передати свій / дім xfs та / btfrs
Дякую за статтю, дуже цікаво.
Критика поза змістом:
Я згадував про це в інших дописах, і думаю, що в такому щоденнику, спільному, де беруть участь всілякі люди, вони не повинні дозволяти собі розміщувати зображення, подібні до того, який ви розмістили в заголовку поста. Не тому, що виходить дівчина в бікіні, а тому, що воно використовується (можливо, ненавмисно) сексистським способом.
Ніхто не критикує, що дівчина чи дівчина в бікіні виходять, навіть голі. Якщо це має сенс, і хтось хоче написати допис про тіла та Інтернет, сексуальність та Інтернет чи щось подібне ... це чудово.
Це виглядає добре, але ... Чому доводиться перевстановлювати ядро? Я не розумію.
Правда в тому, що пару разів встановивши Arch, я вже мав уявлення, куди подітимуться знімки, я вже 1 місяць працюю з новим ПК з Arch і ssd, відформатованим з ext4, я думаю перейти на btrfs, але Це мене також не переконує, тому що, побачивши деякі тести продуктивності в Phoronix, не зовсім зрозуміло, що продуктивність краща, і навіть незважаючи на це з аркою Wiki я вже перекрутив усе, що міг, щоб оптимізувати продуктивність