如何從“ /”更改文件系統而不會死

另一個很棒的教程 在“教程”部分中找到 來自我們論壇的 超級我

昨天我發現了其中一種困難的方法 “特徵” 文件系統 BTFS。 出於某種原因,我不知道它的運作方式, BTFS 往往比命令之類的東西更多地填充磁盤 dd 或常見文件管理器的磁盤填充規格。

如何知道btrfs佔用文件系統多少空間

擁有文件系統的人 BTFS 通過輸入控制台(我相信是root),您將能夠知道數據佔用了多少額外空間:

btrfs文件系統顯示/

(如果您想知道另一個btrfs分區中佔用的空間,請用另一個安裝點替換/)

在大的分區中,這種額外的填充不是一個大問題,因為與總空間相比,它的空間很小。 但是在我的情況下,其中/具有22GB(佔用一個ssd緩存),我的硬盤上已裝有8 GB的可用空間,從而破壞了rpm數據庫,從而禁用了程序包管理器。 因此,我不得不使用另一個文件系統進行格式化。

但是我不想重新安裝。 顯然,來自/ home的數據可以輕鬆保存,但是其中一個程序在/中安裝了許多程序,並且許多設置也都駐留在其中,因此我決定只保留安裝但更改文件系統。

我寫這篇文章的原因是因為在這些情況下我找不到任何有關如何進行的文檔。 我想大多數人都願意重新安裝。

我不得不花大約7個小時來搜索和查找英文手冊中的信息,而這些手冊實際上與其他事情有關,並且需要直觀地將它們拼湊在一起。 總是反複試驗,重新啟動數十次後,發現我嘗試的每件事都失敗了。 實際上,如果沒有專門針對該過程的手冊,那麼該過程就不那麼重要了。

更改“ /”文件系統時要記住的注意事項

第一: 我在執行了此過程 Fedora。 我猜對於所有主要具有引導加載程序的發行版來說,它的工作方式都是相同的 GRUB2.

第二: 這個過程是 對於普通用戶(那些讀過此書並認為這是胡說八道的人知道您不是普通用戶)與更改根分區的文件系統相比,人們通常要做的事更好。 如果您不知道如何遵循本手冊,則會冒失去安裝的風險,如果設法進行安裝,您會發現性能的變化並不是那麼壯觀(嗯,有些情況是這樣,但您不是普通用戶)我是故意這樣做的。 ,儘管我必須承認我是使您的計算機啟動更快的人之一。

第三: 由於此過程不適用於普通用戶,因此我將假定讀者俱有GNU / Linux的一些知識,並且他不會懶於搜索更多信息。

更改文件系統“ /”的過程

無論您是出於必要還是出於無聊而更改文件系統,都可以通過以下步驟進行:

1。 - 顯然,要使我們的新文件系統正常工作,我們必須擁有幫助我們對其進行管理的工具,因此這是我們要做的第一件事。 我順便選擇的文件系統是 xfs,所以我必須安裝 “ Xfsprogs” y “ Xfsdump”。 您將根據需要使用的文件系統安裝所需的任何文件。

2。 - 從livecd / usb引導,然後將根分區的全部內容複製到另一個分區或磁盤。 您選擇的方法無關緊要,但是要做的是使用root特權執行此操作,以免找到具有特殊權限的文件或目錄。

3。 - 使用我們喜歡的文件系統正確格式化“ /”的步驟。 有很多方法,請選擇最喜歡的一種。

4。 - 我們對根分區所做的副本將還原到新格式化的分區。

5。 - 這是用戶必須開始做自己的事情的時刻。 格式化分區會修改標識符,操作系統將使用該標識符來了解要安裝的分區。 這是\它\他 UUID,我們需要知道該代碼。

有多種方法,但是例如,在“ Gparted”中,我們將通過右鍵單擊新分區“ /”並單擊“信息”來知道它。 我們複製該代碼,即當我們要編輯/ etc / fstab文件時:

UUID = 36f3ce91-5138-4293-8571-b5b43f6b4646 / xfs默認值,noatime,丟棄,nobarrier

這是顯示與我的全新根分區對應的行的示例。 右側顯示的代碼 UUID = 是我們將用我們取代的東西 UUID.

完成之後,我們當然必須指出分區的新文件系統, xfs 就我而言,如果是另一個文件系統,則將其替換為您的。 您還必須放置新的安裝選項:如果您不知道要放置什麼,請放置 “默認值”; Noatime 通過減少寫入來提高性能, 丟棄 減少ssd磁盤上的寫入,從而延長其壽命。

6。 - 這是真正他媽的開始的地方,那是我被困住的地方。 並不是真的那麼困難,但是從那時起幾乎沒有文檔。

我們需要重建Grub菜單才能正常啟動操作系統。 我不知道該如何手動操作,您可以嘗試嘗試(更改了UUID等),但是通常的事情是操作系統的啟動停止在一個令人愉快且充滿希望的“緊急外殼”中

幸運的是,grub2擁有該工具 “ Grub2-mkconfig” 它會自動執行此任務,並以運行該系統的系統的特徵為參考。 問題在於,從何處看,它所運行的系統不是目標系統,而目標系統暫時無法使用。

所以我們要做 chroot環境 並安裝一系列特殊分區以運行此工具,否則它將無法正常運行。 幾乎在所有地方都沒有很好地說明此過程(這並不意味著他們不知道如何做,而是他們認為我們正在計算超級裂縫)

幸運的是在這裡: http://askubuntu.com/questions/28099/ho … ll-kernels 我找到了關於該主題的有趣的解釋,然後繼續進行總結和翻譯:

  1. 掛載/和/ dev:
掛載/ dev / sda1 / mnt掛載--bind / dev / mnt / dev

如果“ sda1”不是“ sda1”,則將其替換為與根分區相對應的分區

  1. 掛載/ boot和/ boot / efi,如果有EFI分區,則安裝後者。
掛載/ dev / sda2 / mnt /引導

如果“ sda2”不是“ sda2”,則用對應於啟動分區的那個替換

efi程序集不在上面的鏈接中,這是我的事,但在這種情況下,我需要它。 如果沒有EFI分區,請忽略此設置。

掛載/ dev / sda3 / mnt /引導/ efi

如果“ sda3”不是“ sda3”,則用對應於啟動分區的那個替換

  1. Chroot和其他一些東西,實際上我對這些東西唯一了解的是它們是必需的:
chroot / mnt掛載-t proc無/ proc掛載-t sysfs無/ sys mount -t devpts無/ dev / pts導出HOME = /根導出LC_ALL = C

這是我的補充,以後可能需要做一件事:

掛載-t tmpfs tmpfs /運行

7。 - grub2-mkconfig

好吧,這幾乎是關鍵時刻。 我們必須在啟動分區中查找一個名為“ grub.cfg”的文件。 在我的情況下,其路徑為/boot/efi/EFI/fedora/grub.cfg

找到它後,便在chroot環境中運行:

grub2-mkconfig -o /路徑/a/grub.cfg

最後,我們準備了grub菜單。

根據作者的觀點,不應考慮這一點。 直接跳到第9點

8。 - 重新生成initramfs。

我認為這一步驟是必要的,但我不確定。 但是,重新安裝我們想要的內核或執行它就足夠了:

dracut --force / path /到/文件/ initramfs / that /我們/要/替換

例如:

dracut --force /boot/initramfs-3.15.9-200.fc20.x86_64.img

當然,所有這些都在chroot環境中。 (如果不是,請返回到開始框,er ...到“緊急外殼”)

PS:我忘記了在chroot環境中訪問Internet的操作,以防您想重新安裝內核。 上面的鏈接很好地解釋了:您必須打開一個新終端並複制以下文件:

cp / mnt / etc /主機/mnt/etc/hosts.old cp / etc / hosts / mnt / etc /主機cp / etc / resolv.conf / mnt / etc / resolv.conf

9。 - 上網:

您只需以圖形方式或通過控制台複製以下文件,在後一種情況下,只需在chroot環境之外複製即可。 可以從另一個終端執行此操作,也可以退出chroot環境,然後重新進入。

cp / mnt / etc /主機/mnt/etc/hosts.old cp / etc / hosts / mnt / etc /主機cp / etc / resolv.conf / mnt / etc / resolv.conf

10。 - 重新安裝內核:

我們使用包管理器在chroot環境中重新安裝內核

11。 - 重置AAR :: DD

這一點應該是“常規”發行版的結束,對於SELinux發行版(就我而言),事情花了一點時間。

即使啟動已經結束並且我嘗試啟動圖形系統,也沒有啟動,並且當我嘗試以用戶或root身份登錄時會說“權限被拒絕”。

我閱讀了有關它的內容,據一個人說,問題可能出在selinux上,他建議在grub.cfg的引導行末尾放置selinux = 0,如下所示:

menuentry'帶有Linux 3.15.9-200.fc20.x86_64的Fedora'--class fedora --class gnu-linux --class gnu --class os --unrestricted $ menuentry_id_option'gnulinux-3.15.9-200..fc20 .x86_64-advanced-36f3ce91-5138-4293-8571-b5b43f6b4646'{load_video set gfxpayload = keep insmod gzio insmod part_gpt insmod ext2 set root ='hd1,gpt2'如果[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 else搜索--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 quiet selinux = 0 initrdefi /initramfs-3.15.9。 200-20.fc86.x64_XNUMX.img

查看最右邊的倒數第二行。

我沒有直接這樣做,但是我只是在grub菜單本身中編輯了引導項,因此這是一個臨時修改,我認為是通過在grub菜單中按“ c”或“ e”來完成的,您可以的地方。

好吧,我們這樣做並重新啟動,或者繼續進行引導。

12。 - 隧道盡頭的燈。

如果我們不能直接在上一步中進行操作,則可以在倒數第二個步驟中訪問常規桌面。 為我們的壯舉敬酒,但是可以 SELinux的 搞砸了,我們還沒有完成。

我們必須重新編輯grub.cfg才能刪除“ selinux = 0”,或者,如果我們已經完成了在grub菜單中編輯該條目的操作,則只需正常重啟即可。 事實是我們在激活SELinux的情況下重新啟動。

然後,在開始的最後,您必須重新標記以下策略: 針對SELinux,我們不理會它,完成後它將重新啟動。

我們將看到我們的系統將啟動,顯示我們通常的桌面,並激活SELinux,更改文件系統和所有功能齊全的程序。

這是本手冊的結尾,希望對您有所幫助 燦爛的笑容

ACTUALIZACIÓN: 當我第一次這樣做時,我一無所知,我做了重新生成initramfs的步驟,然後我重新安裝了內核,這一切都非常混亂,最後它幾乎不知道為什麼能正常工作,並且我給這兩個選項都很好,但是重新生成了initramfs不起作用,我已經刪除了。 唯一有效的方法是重新安裝內核(我懷疑Fedora中的內核和內核內核軟件包),因此我對手冊進行了修改。

而且我還想補充一點,以更改/ home分區的文件系統的格式,需要執行相同的步驟,我不知道selinux是否是必需的,但如果它不適用於selinux,則將其暫時刪除,僅此而已。

特色圖片取自 這裡.


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   匿名 他說:

    在我看來,btrfs有幾年的成熟時間,當它失敗時,有一些可以從恐慌中恢復而又不會丟失數據的工具... ext4仍然是職位。
    關於chroot的處理,在gentoo指南中,您已經很好地解釋了:
    https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base/es

    我還使用dracut生成initramfs,因為我需要grub2的mdadm模塊,否則grub2無法找到/ boot的/ dev / md0分區。

    我獲得了一個新的120G SSD磁盤,但是我不願意使用它,它是一種非常新的技術,而且還不是很成熟,我不想每次SSD上的單元損壞時都重新安裝系統。

    早在1年1月,我就在RAID 2012中從頭開始安裝了兩張3T的光盤...我的生殖細胞將要XNUMX歲了...呵呵

    #genlop -t gentoo-sources |頭-n3
    * sys內核/ gentoo源
    11年23月39日星期三02:2012:3.3.1 >>> SYS內核/ gentoo-sources-XNUMX

    這是我用來創建初始ram磁盤的過程,向其中添加bootsplash圖形主題
    並重新生成grub2輸入。

    #掛載/啟動
    #dracut –hostonly»3.19.3-gentoo –force
    #splash_geninitramfs –詳細–res 1920×1080 –追加/boot/initramfs-3.19.3-gentoo.img出現世界
    #grub-mkconfig -o /boot/grub/grub.cfg

    感謝您分享有關btrfs的經驗。

  2.   伊万·巴拉 他說:

    朋友Elav真是棒極了,他的博客條目很棒,感謝論壇中的“ SuperYO”同志。 事實是,類似的事情從未發生在我身上,甚至沒有發生過,但是擁有這樣的大型教程從來沒有什麼壞處。

    就我個人而言,我完全沒有發現BTRFS不成熟,XFS我還沒有使用過它,我知道CentOS 7帶來了它,但是直到今天,我還沒有安裝新的服務器,因此目前來看它並不有趣。 在OpenSUSE中,我使用BTRFS,但它根本沒有給我帶來任何問題,甚至在SSD磁盤上也沒有。 如果要花一個世界讓我付出代價,那就是Unix中的SSD緩存磁盤,那確實是一個巨大的問題,我發現Intel文檔非常不清楚和復雜。 實際上,我在論壇和其他地方都打開了一個主題,但是顯然沒有人碰到這個主題,否則,他們只是將筆記本電腦帶來的SSD緩存磁盤留給了別的東西,突然他們把它們當作SWAP,以免改變系統速度,誰知道。

    也許有關Unix中現有文件系統類型的條目將是壯觀的,我不知道利用每種文件的優勢,我不知道,對於SELinux來說,另一種也將是一件好事,因為關於安全性的討論很多,但是我讀了一篇Internet上的教程,以及他們將“ SELinux = Disabled”放到任何地方,只有在“自由范圍”中,他們才提供有關如何允許程序通過的提示。

    現在,我不再繼續。

    感謝您的輸入和問候。

  3.   罪人 他說:

    謝謝你的提示,伙計,但是btrfs的所有特性都具有zfs,要在Linux中使用它,必須在內核中引發該模塊,但是在freebsd中,它是默認提供的,不會出現任何問題,我建議這樣做,可以這麼說,由於btrfs仍然有很多“小問題”。

  4.   阿撒瀉勒 他說:

    是我還是今天注意到帶有西班牙口音的elav。

    1.    Giskard 他說:

      我也注意到了。 誰會知道原因。

    2.    拉夫 他說:

      哈哈哈哈..是不是我的文章..不要告訴我你沒有看過第一段哈哈哈。

      1.    阿撒瀉勒 他說:

        現在您提到它了……不,我什至沒有註意到。

  5.   超級喲 他說:

    你好如果您看到論壇條目,您將看到第8點被刪除,因為它無效,您要做的就是重新安裝內核,並在編輯時以這種方式放置😛

    發生的是,當我第一次這樣做時,我真的不知道自己在做什麼,我嘗試了所有事情,所以感到困惑😛

  6.   超級喲 他說:

    我繼續,發生的事情是我之前的評論尚未發布been

    因此,如果無法在網絡上刪除任何內容,則將刪除第8點以使工作人員感到困惑。 無論如何,重新生成initramfs可能發生的最壞的事情是我得到的:絕對沒有發生任何事情,無論好壞,這都不是那麼嚴重,但這是一個無用的步驟。

    1.    雨果 他說:

      您分享的好文章,通過您的經歷,我學到了一些新東西😉
      我敢打賭,您感到自己實現目標的勝利感遠勝過挫敗感。 😉

  7.   馬里奧·丹南 他說:

    開源是非常女性化的:它不是為急切的人準備的。
    如果人們專注,熱情和耐心地加深它的魅力,它就會帶給我們最好的自身。

  8.   韋蘭湯谷 他說:

    superYO同事取得了不錯的成績。 很好

  9.   傑明·塞繆爾 他說:

    為什麼用XFS而不是ext4?

    🙂

    1.    布魯蒂科 他說:

      當他們說...時,Ext4越來越老了,並且可以更好地寫入大型數據xfs。

      關於帖子的作者,我從未見過jurnal btrfs填充/分區
      我想知道是因為我相信個人電腦在冬天,因為它從未發生在我身上! 與我與三星專業版一起使用的發行版,但從未發生過。

      1.    超級喲 他說:

        在中型或大型分區上並不是什麼明顯的問題,但是在20GB BTRFS分區上,實際上您可以用幾乎一半的可用空間填充根分區。

        這不是他唯一的問題。 在讀取方面,該磁盤或多或少是正確的,但是對於ssd磁盤和普通硬盤而言,安裝和更新非常緩慢,這是一個主要的麻煩。

        我歸咎於筆記本電腦中的混合單元,因為在其他裝有btrfs的Fedora的地方,我都沒問題,而且運行速度很快,而且很好,除了在我的主計算機上有混合單元的情況。 現在,兩個分區都帶有XFS,這台計算機的性能要好得多。

  10.   德皮 他說:

    從什麼時候起那10分鐘 DesdeLinux?,我幾乎沒有意識到它在那裡o_o

    1.    拉夫 他說:

      前一段時間😀

  11.   他說:

    我認為這很奇怪,但我對此進行了很長時間的研究,我很懶惰,以至於我不想振作起來。 感謝您提供的信息,我想將我的/ home傳遞給xfs和/傳遞給btfrs

  12.   他說:

    感謝您的文章,非常有趣。

    對內容的批評:
    我已經在其他帖子中提到了它,我認為在這樣的協作博客中,各種各樣的人都參與其中,他們不應該允許自己放置圖像,就像您在帖子標題中放置的圖像一樣。 不是因為穿比基尼的女孩出來,而是因為以性別歧視的方式使用了比基尼(可能是無意的)。

    沒有人批評一個女孩或一個穿著比基尼的女孩出來,甚至是赤裸裸的。 如果有道理,並且有人想發表關於身體和互聯網,性與互聯網或類似內容的信息,那就太好了。

  13.   若爾基喬 他說:

    看起來不錯,但是...為什麼必須重新安裝內核? 我不明白。

  14.   焦梅 他說:

    事實是,在安裝了幾次Arch之後,我已經知道拍攝的位置了,我已經在新PC上使用Arch並使用了ext1格式的ssd了4個月,我正在考慮移動到btrfs,但它也不能說服我,因為在Phoronix中進行了一些性能測試後,性能還不是很明顯,即使使用Arch Wiki,我也已經花了很多精力來優化性能