在OpenELEC上调整文件系统大小


11

我正在尝试执行更新,并且错误告诉我我的可用空间不足。因此,我通过以下SSH方式连接到Raspberry,以询问磁盘使用情况:

df -h

我得到了以下结果:

Filesystem                Size      Used Available Use% Mounted on
devtmpfs                185.1M     87.5M     97.6M  47% /dev
/dev/mmcblk0p1          124.7M     96.2M     28.6M  77% /flash
/dev/mmcblk0p2          755.9M    739.4M         0 100% /storage
/dev/loop0               87.5M     87.5M         0 100% /
tmpfs                    74.6M         0     74.6M   0% /dev/shm
tmpfs                    10.0M    684.0K      9.3M   7% /var

问题是我的SD卡是8Gb SD卡,它显示的大小更像是1Gb,所以我的问题是为什么我看不到整个空间?

Answers:


13

这里修改后,SSH进入运行OpenELEC的Raspberry Pi,并按照以下步骤操作。

  1. SSH以root身份登录,默认情况下您位于/storage;切换到根分区:

    $ cd /
    
  2. 阻止XBMC重新启动:

    $ touch /var/lock/xbmc.disabled
    
  3. 停止XBMC,因此我们可以卸载/storage

    $ killall -9 xbmc.bin
    $ umount /storage
    
  4. 验证安装:

    $ mount
    $ parted /dev/mmcblk0
    
  5. 在parted中,更改为扇区显示:

    $ unit s
    
  6. 显示分区,记下分区的起始扇区:

    $ p
    
  7. 删除分区:

    $ rm 2
    
  8. 重新创建它,使用相同的起始扇区号并以“ -1”结尾以使用剩余空间:

    $ mkpart primary 258048 -1
    $ quit parted
    $ e2fsck -f /dev/mmcblk0p2
    $ resize2fs /dev/mmcblk0p2
    $ mount /dev/mmcblk0p2 /storage
    $ df -h
    $ rm /var/lock/xbmc.disabled
    
  9. XBMC将自行重新启动。


openelec发行版中是否存在此命令?
darkheir

抱歉,我总是默认使用Raspbian指令,不好的习惯:P。我已经回答了这个问题,现在应该可以了。
syb0rg

不起作用 我无法卸载,因为connmand正在使用/ storage并且它无法被杀死
Rob

不再工作了!请参阅以下Marcin的答案。
2014年

18

创建SD后,OpenELEC在首次启动时会调整/ storage的大小。我寻找了执行此操作的脚本。它是https://github.com/OpenELEC/OpenELEC.tv/blob/master/packages/sysutils/busybox/scripts/fs-resize?source=c 第一行代码检查/storage/.please_resize_me文件。

因此...要调整存储大小以填充SD,您需要:

touch /storage/.please_resize_me
reboot

在我的OpenELEC 4.0.7上完成并正常工作。


1
这应该是公认的答案
克里斯(Chris)

在5.0.3上进行了尝试,并按照说明进行了工作
LowvaPrg 2015年

在脚本的第二行中,它说如果存在名为kodi,config或cache的文件夹,则无法调整大小。我所有的三个都得到了。。。现在如何调整大小?
Peter Raeves

4

我遇到的一个问题(版本3.1.5):umount / storage =>“ umount:无法umount / storage:设备或资源繁忙”

fuser -m / storage =>锁定安装的进程的pid我试图杀死它,但是每次新进程阻止安装时。我必须同时用管道杀死+ umount(按此顺序):umount / storage | 杀死-9 pid

完成工作!


不起作用,connmand会在终端可以运行之前自动重新启动umount
Rob

2

如果有人使用最新版本存在此问题:
syb0rg答案很好,但
$ touch /var/lock/xbmc.disabled
$ killall -9 xbmc.bin

不再工作了!使用:
$ systemctl stop kodi.service代替!


2

Openelec 5:

检查哪些进程阻止分区/存储卸载

lsof | grep "/storage" (will return the PID of the process)

检查这些进程是否在systemd树中并且由systemd控制。

systemctl status 将显示系统树。

在可能的情况下,我必须停止以下操作:

systemctl stop cron.service
systemctl stop connman.service
systemctl stop kodi.service

检查fuser -m /storage是否还有进程阻止该目录。如果返回了某些PID,则可以检查与该PID运行相关的进程ps -ef | grep $PID

如果看到类似的-sh内容,则是/ storage目录中的ssh会话。cd /扎根。

否则,您可以使用终止该进程kill -9 $PID

现在,您可以通过以下方式安全地卸载/ storage目录

umount /storage

现在您可以调整分区的大小(由于某些命令已更改,我将再次报告)

  1. 确保属于哪个分区/存储

    df -h

在大多数情况下/dev/mmcblk0p2(分区2)

  1. 打开设备/ dev / mmcblk0的parted

    parted /dev/mmcblk0

  2. 显示分区(我们现在想要调整分区大小)

    p

  3. 调整分区大小(本例中为分区2到最后)

    resize 2 -1

    quit parted

  4. 调整文件系统大小

    e2fsck -f /dev/mmcblk0p2

    resize2fs /dev/mmcblk0p2

    mount /dev/mmcblk0p2 /storage

    df -h

如果要调整大小,/ flash则完全不同。


1
工作对我来说,除了parted /dev/mmcblk0partedresize 2 -1是需要的resizepart 2 -1
ChrisGheen

到目前为止最好的答案。除了这个答案,其他任何事情对我都没有作用。
Michael Malura '04

1

我以这种方式解决了有关“卸载存储/”的问题:

fuser -m /storage

5161

kill -9 5161 && umount /storage

那对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.