題:
如何調整/(根)分區的大小?
Jivings
2012-06-19 14:15:48 UTC
view on stackexchange narkive permalink

即使我的SD卡為16GB,但我閃過的圖像只有2GB,現在我在磁盤上只能看到2GB的存儲空間。

如何調整圖像大小,以便在根分區上有更多空間?

謝謝..非常適合我,沒有給我的系統加油..仍然有IRC和apache網絡服務器以及我全部的8GB容量
當您可以在剩餘的可用SD卡空間上創建新分區,然後將其掛載在根分區內的/ mnt / storage目錄中時,為什麼要調整根分區的大小。這有效地隔離了系統和數據,並使維護和備份更加容易。
@mbaitoff-因為默認系統映像僅具有68MiB可用空間,所以沒有太多餘地來添加其他軟件。
@Jules-我不是在問為什麼要調整分區大小。有人問為什麼要調整系統分區的大小,而不是在系統分區安裝點安裝額外的存儲,從而有效地隔離系統和軟件/數據?如果要存儲,則將剩餘的SD spcae安裝在`/ mnt / storage`中;如果需要程序,請在`/ opt / software /`安裝。
@mbaitoff大多數程序安裝在/ usr,而不是/ opt / software中。預先構建的映像在根分區中具有/ usr的內容。因此,如果要安裝任何非默認軟件,則似乎必須增加根分區的大小。
@Jules將空間安裝在`/ usr / local`
五 答案:
Steve Robillard
2012-06-19 15:04:34 UTC
view on stackexchange narkive permalink

假設您正在使用Debian。

簡短版本:

  1. 備份系統
  2. 刪除主分區和交換分區(不包含啟動分區)
  3. 重新創建主分區以利用剩餘的磁盤空間(引導分區除外)。確保重用與原始根分區相同的啟動扇區。
  4. 重新引導系統
  5. 調整新的引導根分區的大小以利用整個分區的大小。
  6. ol>

    分步說明

    首先使用此處中的說明對SD卡進行備份,以防萬一出現問題。

    從在命令行或終端窗口中輸入以下內容

      sudo fdisk / dev / mmcblk0  

    然後鍵入 p 列出分區表

    ,您應該看到三個分區。如果您在標記為 System 的最後一列中查看

    1. W95 FAT32
    2. Linux
    3. Linux交換
    4. ol>

      記下第2部分的開始編號,稍後您將需要它。儘管它可能仍會顯示在屏幕上(以防萬一)。

      下一步鍵入 d 刪除分區。

      然後將提示您輸入要分區的編號。刪除。在上述情況下,您要刪除Linux和Linux交換分區。

      因此,鍵入 2

      ,然後鍵入 d ,然後鍵入 3 刪除交換分區。

      現在您可以調整大小主分區。

      鍵入 n 來創建新分區。

      此新分區必須是主分區,因此鍵入 p

      然後在提示您輸入分區號時輸入 2

      現在將提示您輸入新分區的第一個扇區。輸入上一步中的起始編號(Linux分區)

      接下來,系統將提示您輸入您可以按Enter接受默認值的最後一個扇區,該扇區將利用剩餘的磁盤空間。

      鍵入 w 保存所做的更改。

      下一步,使用以下命令重新引導系統:

        sudo reboot  

      系統重新啟動後,您又回到命令行輸入以下命令:

        sudo resize2fs / dev / mmcblk0p2  

      注意:這可能需要很長時間(取決於卡的大小和速度),請耐心等待,以便完成操作,這樣就不會弄亂文件系統,而必須從頭開始。

      完成後,使用以下命令重新引導系統:

        sudo reboot  

      現在,您可以驗證系統是否已通過輸入以下命令來使用SD卡的全部容量:

        df -h  

      為什麼起作用:

      真正的魔力在於您刪除根分區和交換分區,然後僅在寫入數據到磁盤之前(使用原始啟動扇區)重新創建根分區。因此,您不會從根分區中擦除現有數據。

      通過刪除交換分區,您可以使根分區空間超出其當前大小,並填充磁盤的未使用部分(由於分區的位置-根分區夾在引導區和引導區之間)交換分區-不能簡單地調整大小而不能單獨保留交換分區)。

      然後調整文件系統的大小(可以在已安裝的磁盤上安全運行)以使用新的根分區中的所有空間。

      ref:

一個很好的答案。但是,我相信這最多只能提供2GB的圖像大小。
但是`resize2fs`通常不能在已掛載的分區上使用嗎?
@Jivings檢查鏈接的引用以證明其有效-在將xbmc放入pi之前,我也這樣做。
@finnw在我看來,此方法刪除了根分區,以便可以重新創建更大的分區,但這並不是最佳選擇。
@finnw您可以在http://www.raspberrypi.org/phpBB3/viewtopic.php?f=5&t=5584上找到有關此方法的更多證據,以及對您的resize2fs問題的解答。
如果正確完成@Jivings,您不會丟失任何東西,但這是我進行第一步備份的原因。
從評論中看來,您還應該記錄“為什麼”這樣做,而不僅僅是如何工作。
@Jivings希望能解決您的問題。
必須刪除分區以調整其大小似乎是非常錯誤的。
您正在刪除它但未格式化,因此不會丟失任何文件
@AlexChamberlain我認為,如果命令是調整大小(在Windows中實際上稱為resize)分區而不是刪除分區,則這樣做會容易一些。
這確實像是對活著的患者進行完整的脊柱置換手術(將舊的脊髓留在原位),而無需使用麻醉劑,甚至不中斷他們的日常工作,但令人驚訝的是,它運轉良好。如果您感到害怕,請在新刷的卡上進行操作,如果出現任何問題,可以將其重新閃爍。您還可能要創建一個交換文件並掛載它,因為交換分區已刪除。
我一直以來都一直在使用此過程,沒有任何問題,但是來自arch linux部門的最新圖像更改了分區結構,因此您不能以“複製粘貼”的方式遵循上述說明,我發現更新了該網站上的說明:http://jan.alphadev.net/post/53594241659/growing-the-rpi-root-partition,這對我有用。
-1
等一下,您如何在Mac上做到這一點?我試圖在我的sd卡上再次安裝Raspbian,但是我已經用擦除的格式對它進行了幾次格式化,但它似乎仍未獲得任何內存。
@AwesomeUser您不在Mac上執行此操作,而是在pi本身上執行此操作。另外,如果您正在運行raspbian,則可以啟動pi,然後從命令行發出以下命令sudo raspi-config,然後選擇resize root partition選項。
如果您實際上喜歡交換分區,並希望在執行這些步驟後重新創建分區,該怎麼辦?
@zaz,實際上是一個單獨的問題,不應在答案的註釋中提出。
@SteveRobillard的問題是“我怎樣才能使我的根分區更大”而不是“我怎樣才能使我的根分區更大,並且作為獎勵,刪除我的其他分區”
@zaz,這就是為什麼它應該是一個單獨的問題。單擊上方的詢問按鈕,詢問您的交換分區。新問題不屬於註釋,尤其是舊問題。通過在這裡提問,唯一可能看到它的人就是我。如果您提出一個新問題,整個社區將有機會看到並回答。另外,請注意,例如,根據所運行的OS /發行版,您運行Raspbian的腳本包括用於調整根分區大小的腳本,無需手動進行。
我知道如何創建交換分區,我的意思是您應該在答案中添加“為交換分區留出空間”和“ fdisk另一個交換分區以替換在步驟2中刪除的交換分區”。當前使交換分區看起來不是必需的。
實際上,將鏈接發佈到http://raspberrypi.stackexchange.com/questions/70/how-to-set-up-swap-space或其他內容,然後按照“我們刪除了交換分區,但是無論如何,這對樹莓來說不是一個好主意,因為有SD卡。”
Raspbian中不再有交換分區。
我在樹莓派pi3上嘗試了此操作,但重啟後卻收到此錯誤:`PANIC:VFS:由於鍵盤輸入,無法在未知塊(179,2)上輸入kdb(current = 0xcb82ac80,pid 1)掛載根fs。
-1
@SteveRobillard;我不是在問一個新問題。我得出了這個答案,並嘗試了一下。我正在使用Kali圖像而不是Raspbian。我想知道如何使用CLI來做到這一點(之前我使用過`gparted`)。
可以在PI上執行此操作以縮小而不是擴大分區嗎? (在同一PI上執行此操作)。
@clankill3r也許可以,但是我不建議這樣做,因為它可能會破壞您的系統。在此處或Google進行搜索將顯示有關縮小光盤映像大小的完整說明。
對於[NOOBS分區](https://github.com/raspberrypi/noobs/wiki/NOOBS-partitioning-explained),這些分區將是主“ 1”和擴展的“ 2”,其中包含邏輯分區“ 5”(“設置”),“ 6”(“ / boot”)和“ 7”(“ /”根)。請確保您在創建新分區時選擇“ 7”和“邏輯”作為分區類型。有關更多信息,請查看[本教程](https://dracoy.com/2016/06/26/expanding-partition-on-sd-帶有樹莓派的pi卡(已預安裝/)。
@Steve Robillard謝謝史蒂夫,這就像一個魅力!無法從其他操作系統調整大小並弄亂了安裝後,我嘗試了這種方法。這是調整大小的正確方法。我們不需要刪除卡並將其移動到另一個系統上,只需調整分區大小即可。做得好!
在RPi2上為我的OSMC發揮了魔力!
即使這是一個舊帖子,它仍然適用於當前的Kali 2018圖像
我做了:`sudo resize2fs -p / dev / mmcblk0p3`並得到`resize2fs 1.43.3(04-Sep-2016)resize2fs:嘗試打開/ dev / mmcblk0p3時設備或資源繁忙,找不到有效的文件系統超級塊。
@EliaWeiss您在運行菜鳥嗎?您正在使用什麼發行版?文件系統已經擴展了嗎?
@SteveRobillard請在https://raspberrypi.stackexchange.com/questions/82585/resize2fs-device-or-resource-busy-while-trying-to-open-dev-mmcblk0p3中查看更多信息
@Steve Robillard謝謝史蒂夫。只是一個補充信息,就我而言,我使用RPi2,在SDCard上啟動,並使用外部HD作為/,因此磁盤路徑為/ dev / sda2。另外我沒有交換分區...
好答案!您介意添加有關刪除簽名的內容嗎?
@DanGreen-Leipciger什麼簽名?
最後一個提示是我是否要刪除分區簽名。
同樣在這裡!創建分區後(即輸入最後一個扇區的編號),它詢問我“是否要刪除簽名?[Y]是/ [否] o:”
一個更簡單的CLI選項是打開“ fdisk mmcblk1”,選擇“ O”將磁盤佈局轉儲到本地腳本,然後備份。使用“ p”獲取磁盤上以及每個分區中的扇區數。對要保留的分區的“扇區”值求和,然後從總數中減去它們。現在編輯腳本,並使用該數字作為目標分區的“大小”。保存它,使用“ I”將其加載到“ fdisk”中,然後寫入您的更改。使用`partprobe / dev / mmcblk1`而不是重新啟動,最後使用`resize2fs / dev / mmcblk1p2`。
Jon Egerton
2012-07-05 16:10:05 UTC
view on stackexchange narkive permalink

使用Debian-Wheezy Beta映像,內置了一個配置實用程序,可簡化此操作:

有一個名為 raspi-config 的實用程序。如果您直接連接到RPi,它將在首次啟動時運行。如果您使用的是SSH,則可以使用 $ sudo raspi-config 手動運行它。 (我認為您可以隨時手動重新運行該工具。)

緊隨其後的藍色對話框中的第二個選項名為 expand_rootfs ,描述為“擴展根分區”填充SD卡”。

選擇此選項將導致您的根分區在下次啟動RPi時被調整大小以填充卡。

2015年更新! / em>

在返回此答案時,我要格外小心:我一直在使用一堆16GB SD卡,但由於最大化分區來填充原來的卡而陷入困境使用。這樣做會導致切換到新卡(儘管據說為16GB)比舊卡小200MB左右的問題。

當我將幾個RPis從v1切換到使用Micro SD卡的新v2型號時,此問題浮出水面。

我現在留出大約1GB的可用空間以確保絕對安全我的圖像可以在SD卡之間切換而不會出現問題。

在我的Pi上使用16 GB卡,此過程大約花費了10分鐘。
這比最簡單的答案要簡單得多。這是要使用的解決方案。
@JamesSkimming:這是用於Debian-Wheezy Beta圖像的解決方案。不適合其他人。
當從NOOBS安裝在SDCard上時,這不適用於Raspbian,因為它們隨RPi套件一起提供。當您嘗試運行expand選項時,它說它不受此配置的支持,但是由於您正在運行的菜鳥,它可能仍在使用所有空間...問題是我試圖將8GB映像刷新到32GB卡上
Raspi-config不知道如何根據您的建議調整Raspbian Wheezy.expand_rootfs根的大小,這會導致問題。您上面的回答在運行中的系統中就像一個魅力,不需要“保留大約1 GB”。
對於使用Plex並將sd卡文件移動到更大的sd卡的任何人,複製新圖像後,效果都很好。
您如何留下1GB的可用空間?或您在哪裡/在哪裡指定擴展分區大小的多少?
Joost
2012-07-04 14:04:54 UTC
view on stackexchange narkive permalink

如果您不太習慣使用命令行,例如在Steve Robillards的出色回答中,則可以使用一些GUI應用程序。特別是gparted效果很好。

我認為它默認安裝在Ubuntu LiveCD上,而不安裝在已安裝的系統上。當然,有一個簡單的解決方法: apt-get install gparted 。您無法在實際的Pi上執行此操作,因為要調整分區的大小,需要將其卸載。

下面的圖片是荷蘭語的,但是請不要讓它破壞樂趣。它很容易使用。這是默認debian映像在8gb sdcard上的佈局。

GParted

右鍵單擊要卸載的分區,然後右鍵單擊以調整大小或移動分區。您還可以創建新分區並格式化現有分區。在下面的圖片中,我已經刪除了交換分區,現在可以將根分區的大小調整為它右邊的整個空間。不要完全填滿它,因為您仍然必須添加交換分區。

Resize

您可以使用分區佈局,只有在應用了更改(第一張圖片中的“ return”鍵顯示為灰色)。

移動分區非常容易,但是就像在Steve的回答中一樣,我建議您完全刪除交換分區,然後調整根的大小,然後重新創建交換。移動分區可能會花費很長時間,並且交換不包含您需要保留的數據。

我用過這種方法;奇蹟般有效。
我同意。我已經用gparted做到了這一點,它非常容易
如果通過VNC連接,請運行sudo -E gparted。
如果您在Wayland下運行(不確定這些問題是否已解決),可能還需要在gparted之前運行以下命令:xhost + SI:localuser:root
popcornmix
2012-06-20 22:48:47 UTC
view on stackexchange narkive permalink

如果您使用更新的Debian Wheezy映像: http://www.raspberrypi.org/archives/1435啟動時腳本允許您調整大小以自動填充sdcard。

我正在使用Arch Linux。
怎麼會這樣呢?
**這是為任何最新的Wheezy映像調整分區大小的最簡單方法。
Mark Ingram
2012-06-21 22:14:23 UTC
view on stackexchange narkive permalink

我遵循了此視頻,並且對我來說效果很好(我有16GB的存儲卡):

http://www.youtube.com/watch?v=R4VovMDnsIE&feature=plcp

-1如果鏈接腐爛,答案應該能夠獨立存在。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...