# Root filesystem out of disk space



## robn77 (Oct 26, 2001)

I have two HR10's and they seem to be configured differently.

My HR10 with a 500GB Hard Drive seems to only have 128MB partitions but my HR10 with the stock 250GB drive has 256MB partitions.

Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/hda7 126911 126327 0 100% / --- New 6.3b root
/dev/hda9 126911 48387 71971 40% /var --- New 6.3b var
/dev/hda4 126911 126911 0 100% /var/old --- Old 3.1.5 root

Because the tivoapp file is about 22MB, I am running out of space to put things like tivoweb and FTP on the box without putting them in /var and running the risk of them being wiped on a reboot.

Is there a way for me to add disk space to /dev/hda7 without me running the risk of another upgrade stepping on my installation? Can I use one of the /dev/hdaX partitions?

Thanks!


----------



## cheer (Nov 13, 2005)

You can use a spare partition and mount it off of root to hold stuff, but to be honest I think you should investigate why your root is full. It shouldn't be, even with only 128MB. How many backup copies of tivoapp do you have? Also check your busybox stuff; if you copied busybox from one partition to another incorrectly, it will create a bazillion copies of busybox...


----------



## robn77 (Oct 26, 2001)

I have been ruinning du -k to try and identify where the space issues lie. Right now the numbers do not add up. There should be a total of about 180MB but du is inly showing about 118MB.


Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/hda7 126911 126327 0 100% /
/dev/hda9 126911 56847 63511 47% /var

Here is the output of du -k This includes /var which is on /dev/hda9.

Family-TiVo# du -k
12 ./lost+found
1903 ./bin
1 ./etc/hotplug
10 ./etc/mempools
48 ./etc/rc.d/StageA_PreKickstart
19 ./etc/rc.d/StageB_PostKickstart
43 ./etc/rc.d/StageC_MediaInitialization
43 ./etc/rc.d/StageD_PreMfs
21 ./etc/rc.d/StageE_PreApplication
4 ./etc/rc.d/StageF_ApplicationLaunch
4 ./etc/rc.d/StageG_PostApplication
193 ./etc/rc.d
4 ./etc/tivoconfig
254 ./etc
1 ./etccombo
2065 ./lib/modules
5524 ./lib
32 ./opt/tivo
33 ./opt
1345 ./sbin
34433 ./tvbin
9 ./tvlib/data/apg
182 ./tvlib/data/dishpointing
192 ./tvlib/data
170 ./tvlib/firmware/cdc
241 ./tvlib/firmware/prism2
412 ./tvlib/firmware
375 ./tvlib/font/dtvcc
376 ./tvlib/font
1566 ./tvlib/idl
6 ./tvlib/itcl3.2
10 ./tvlib/misc
6 ./tvlib/modem/patches/P2107-V90/ram
7 ./tvlib/modem/patches/P2107-V90
6 ./tvlib/modem/patches/P2109-V90/ram
7 ./tvlib/modem/patches/P2109-V90
3 ./tvlib/modem/patches/Si2433/C/AT
4 ./tvlib/modem/patches/Si2433/C
5 ./tvlib/modem/patches/Si2433
2 ./tvlib/modem/patches/Si2434/B/AT
3 ./tvlib/modem/patches/Si2434/B
4 ./tvlib/modem/patches/Si2434
2 ./tvlib/modem/patches/Si2456/D/AT
3 ./tvlib/modem/patches/Si2456/D
4 ./tvlib/modem/patches/Si2456
28 ./tvlib/modem/patches
3 ./tvlib/modem/utils
32 ./tvlib/modem
11 ./tvlib/tcl/apg
5 ./tvlib/tcl/encoding
27 ./tvlib/tcl/http
12 ./tvlib/tcl/http1.0
16 ./tvlib/tcl/msgcat
36 ./tvlib/tcl/opt
2 ./tvlib/tcl/reg
126 ./tvlib/tcl/tcldom
34 ./tvlib/tcl/tcllib/base64
34 ./tvlib/tcl/tcllib/cmdline
33 ./tvlib/tcl/tcllib/comm
35 ./tvlib/tcl/tcllib/counter
46 ./tvlib/tcl/tcllib/crc
19 ./tvlib/tcl/tcllib/csv
28 ./tvlib/tcl/tcllib/des
39 ./tvlib/tcl/tcllib/exif
31 ./tvlib/tcl/tcllib/fileutil
86 ./tvlib/tcl/tcllib/ftp
10 ./tvlib/tcl/tcllib/inifile
29 ./tvlib/tcl/tcllib/log
137 ./tvlib/tcl/tcllib/math
24 ./tvlib/tcl/tcllib/md4
49 ./tvlib/tcl/tcllib/md5
14 ./tvlib/tcl/tcllib/md5crypt
144 ./tvlib/tcl/tcllib/mime
9 ./tvlib/tcl/tcllib/multiplexer
38 ./tvlib/tcl/tcllib/report
11 ./tvlib/tcl/tcllib/sha1
326 ./tvlib/tcl/tcllib/struct
32 ./tvlib/tcl/tcllib/uri
1215 ./tvlib/tcl/tcllib
99 ./tvlib/tcl/tcltest
135 ./tvlib/tcl/tclxml
287 ./tvlib/tcl/tv
2156 ./tvlib/tcl
4751 ./tvlib
7 ./platform/etc/hotplug
3 ./platform/etc/mempools
267 ./platform/etc
1946 ./platform/lib/modules
2530 ./platform/lib
825 ./platform/sbin
5 ./platform/utils/DeviceList
6 ./platform/utils
3629 ./platform
12 ./var/lost+found
1 ./var/tmp/mfsd
1 ./var/tmp/shmemd
1 ./var/tmp/mcp
1 ./var/tmp/dbgc-mcp
1 ./var/tmp/huxley
1 ./var/tmp/SystemServices
1 ./var/tmp/tcphonehome
1 ./var/tmp/ApgManager
1 ./var/tmp/myworld
1 ./var/tmp/HmeHost
1 ./var/tmp/RendezvousDaemon
1 ./var/tmp/KnownHostComponent
1 ./var/tmp/SiHost
1 ./var/tmp/httpd
6289 ./var/tmp
4 ./var/run
4273 ./var/log
1 ./var/packages
1 ./var/utils
2 ./var/persist
1 ./var/dev
2 ./var/etc
3145 ./var/cache/tivo/guide
3146 ./var/cache/tivo
3147 ./var/cache
1 ./var/state/dhcp
2 ./var/state
1 ./var/hack
1 ./var/spool
56847 ./var
0 ./proc/si9190
0 ./proc/brcm/register
0 ./proc/brcm
0 ./proc/ide/ide0/hda
0 ./proc/ide/ide0
0 ./proc/ide
0 ./proc/bus/usb
4 ./proc/bus/pci/00
4 ./proc/bus/pci
4 ./proc/bus
0 ./proc/tty/driver
0 ./proc/tty/ldisc
0 ./proc/tty
0 ./proc/driver
0 ./proc/fs
0 ./proc/sys/abi
0 ./proc/sys/dev
0 ./proc/sys/debug
0 ./proc/sys/fs
0 ./proc/sys/proc
0 ./proc/sys/net/unix
0 ./proc/sys/net/ipv4/conf/eth0
0 ./proc/sys/net/ipv4/conf/lo
0 ./proc/sys/net/ipv4/conf/default
0 ./proc/sys/net/ipv4/conf/all
0 ./proc/sys/net/ipv4/conf
0 ./proc/sys/net/ipv4/neigh/eth0
0 ./proc/sys/net/ipv4/neigh/lo
0 ./proc/sys/net/ipv4/neigh/default
0 ./proc/sys/net/ipv4/neigh
0 ./proc/sys/net/ipv4/route
0 ./proc/sys/net/ipv4
0 ./proc/sys/net/ethernet
0 ./proc/sys/net/802
0 ./proc/sys/net/core
0 ./proc/sys/net
0 ./proc/sys/vm
0 ./proc/sys/kernel/random
0 ./proc/sys/kernel
0 ./proc/sys
0 ./proc/sysvipc
0 ./proc/net/drivers
0 ./proc/net
0 ./proc/1/fd
0 ./proc/1
0 ./proc/2/fd
0 ./proc/2
0 ./proc/3/fd
0 ./proc/3
0 ./proc/4/fd
0 ./proc/4
0 ./proc/5/fd
0 ./proc/5
0 ./proc/6/fd
0 ./proc/6
0 ./proc/9/fd
0 ./proc/9
0 ./proc/102/fd
0 ./proc/102
0 ./proc/104/fd
0 ./proc/104
0 ./proc/118/fd
0 ./proc/118
0 ./proc/121/fd
0 ./proc/121
0 ./proc/123/fd
0 ./proc/123
0 ./proc/124/fd
0 ./proc/124
0 ./proc/125/fd
0 ./proc/125
0 ./proc/126/fd
0 ./proc/126
0 ./proc/127/fd
0 ./proc/127
0 ./proc/128/fd
0 ./proc/128
0 ./proc/129/fd
0 ./proc/129
0 ./proc/130/fd
0 ./proc/130
0 ./proc/131/fd
0 ./proc/131
0 ./proc/132/fd
0 ./proc/132
0 ./proc/136/fd
0 ./proc/136
0 ./proc/137/fd
0 ./proc/137
0 ./proc/146/fd
0 ./proc/146
0 ./proc/158/fd
0 ./proc/158
0 ./proc/165/fd
0 ./proc/165
0 ./proc/168/fd
0 ./proc/168
0 ./proc/169/fd
0 ./proc/169
0 ./proc/170/fd
0 ./proc/170
0 ./proc/171/fd
0 ./proc/171
0 ./proc/173/fd
0 ./proc/173
0 ./proc/177/fd
0 ./proc/177
0 ./proc/178/fd
0 ./proc/178
0 ./proc/179/fd
0 ./proc/179
0 ./proc/180/fd
0 ./proc/180
0 ./proc/181/fd
0 ./proc/181
0 ./proc/182/fd
0 ./proc/182
0 ./proc/213/fd
0 ./proc/213
0 ./proc/214/fd
0 ./proc/214
0 ./proc/215/fd
0 ./proc/215
0 ./proc/216/fd
0 ./proc/216
0 ./proc/217/fd
0 ./proc/217
0 ./proc/218/fd
0 ./proc/218
0 ./proc/219/fd
0 ./proc/219
0 ./proc/220/fd
0 ./proc/220
0 ./proc/221/fd
0 ./proc/221
0 ./proc/222/fd
0 ./proc/222
0 ./proc/224/fd
0 ./proc/224
0 ./proc/225/fd
0 ./proc/225
0 ./proc/226/fd
0 ./proc/226
0 ./proc/227/fd
0 ./proc/227
0 ./proc/232/fd
0 ./proc/232
0 ./proc/233/fd
0 ./proc/233
0 ./proc/234/fd
0 ./proc/234
0 ./proc/238/fd
0 ./proc/238
0 ./proc/239/fd
0 ./proc/239
0 ./proc/240/fd
0 ./proc/240
0 ./proc/245/fd
0 ./proc/245
0 ./proc/261/fd
0 ./proc/261
0 ./proc/262/fd
0 ./proc/262
0 ./proc/263/fd
0 ./proc/263
0 ./proc/265/fd
0 ./proc/265
0 ./proc/272/fd
0 ./proc/272
0 ./proc/273/fd
0 ./proc/273
0 ./proc/274/fd
0 ./proc/274
0 ./proc/276/fd
0 ./proc/276
0 ./proc/277/fd
0 ./proc/277
0 ./proc/279/fd
0 ./proc/279
0 ./proc/280/fd
0 ./proc/280
0 ./proc/281/fd
0 ./proc/281
0 ./proc/283/fd
0 ./proc/283
0 ./proc/287/fd
0 ./proc/287
0 ./proc/288/fd
0 ./proc/288
0 ./proc/289/fd
0 ./proc/289
0 ./proc/290/fd
0 ./proc/290
0 ./proc/291/fd
0 ./proc/291
0 ./proc/292/fd
0 ./proc/292
0 ./proc/293/fd
0 ./proc/293
0 ./proc/294/fd
0 ./proc/294
0 ./proc/295/fd
0 ./proc/295
0 ./proc/296/fd
0 ./proc/296
0 ./proc/297/fd
0 ./proc/297
0 ./proc/298/fd
0 ./proc/298
0 ./proc/299/fd
0 ./proc/299
0 ./proc/300/fd
0 ./proc/300
0 ./proc/301/fd
0 ./proc/301
0 ./proc/302/fd
0 ./proc/302
0 ./proc/303/fd
0 ./proc/303
0 ./proc/304/fd
0 ./proc/304
0 ./proc/305/fd
0 ./proc/305
0 ./proc/306/fd
0 ./proc/306
0 ./proc/307/fd
0 ./proc/307
0 ./proc/308/fd
0 ./proc/308
0 ./proc/309/fd
0 ./proc/309
0 ./proc/310/fd
0 ./proc/310
0 ./proc/312/fd
0 ./proc/312
0 ./proc/319/fd
0 ./proc/319
0 ./proc/324/fd
0 ./proc/324
0 ./proc/326/fd
0 ./proc/326
0 ./proc/331/fd
0 ./proc/331
0 ./proc/333/fd
0 ./proc/333
0 ./proc/335/fd
0 ./proc/335
0 ./proc/336/fd
0 ./proc/336
0 ./proc/337/fd
0 ./proc/337
0 ./proc/338/fd
0 ./proc/338
0 ./proc/339/fd
0 ./proc/339
0 ./proc/340/fd
0 ./proc/340
0  ./proc/341/fd
0 ./proc/341
0 ./proc/342/fd
0 ./proc/342
0 ./proc/343/fd
0 ./proc/343
0 ./proc/344/fd
0 ./proc/344
0 ./proc/345/fd
0 ./proc/345
0 ./proc/346/fd
0 ./proc/346
0 ./proc/347/fd
0 ./proc/347
0 ./proc/349/fd
0 ./proc/349
0 ./proc/350/fd
0 ./proc/350
0 ./proc/351/fd
0 ./proc/351
0 ./proc/352/fd
0 ./proc/352
0 ./proc/354/fd
0 ./proc/354
0 ./proc/355/fd
0 ./proc/355
0 ./proc/356/fd
0 ./proc/356
0 ./proc/357/fd
0 ./proc/357
0 ./proc/359/fd
0 ./proc/359
0 ./proc/360/fd
0 ./proc/360
0 ./proc/361/fd
0 ./proc/361
0 ./proc/362/fd
0 ./proc/362
0 ./proc/363/fd
0 ./proc/363
0 ./proc/364/fd
0 ./proc/364
0 ./proc/365/fd
0 ./proc/365
0 ./proc/366/fd
0 ./proc/366
0 ./proc/367/fd
0 ./proc/367
0 ./proc/374/fd
0 ./proc/374
0 ./proc/375/fd
0 ./proc/375
0 ./proc/377/fd
0 ./proc/377
0 ./proc/378/fd
0 ./proc/378
0 ./proc/380/fd
0 ./proc/380
0 ./proc/381/fd
0 ./proc/381
0 ./proc/382/fd
0 ./proc/382
0 ./proc/388/fd
0 ./proc/388
0 ./proc/390/fd
0 ./proc/390
0 ./proc/391/fd
0 ./proc/391
0 ./proc/392/fd
0 ./proc/392
0 ./proc/393/fd
0 ./proc/393
0 ./proc/394/fd
0 ./proc/394
0 ./proc/400/fd
0 ./proc/400
0 ./proc/402/fd
0 ./proc/402
0 ./proc/404/fd
0 ./proc/404
0 ./proc/406/fd
0 ./proc/406
0 ./proc/418/fd
0 ./proc/418
0 ./proc/424/fd
0 ./proc/424
0 ./proc/425/fd
0 ./proc/425
0 ./proc/426/fd
0 ./proc/426
0 ./proc/435/fd
0 ./proc/435
0 ./proc/493/fd
0 ./proc/493
0 ./proc/1093/fd
0 ./proc/1093
0 ./proc/1177/fd
0 ./proc/1177
0 ./proc/1193/fd
0 ./proc/1193
0 ./proc/1205/fd
0 ./proc/1205
0 ./proc/1217/fd
0 ./proc/1217
0 ./proc/1294/fd
0 ./proc/1294
0 ./proc/1348/fd
0 ./proc/1348
0 ./proc/1352/fd
0 ./proc/1352
0 ./proc/1360/fd
0 ./proc/1360
0 ./proc/1364/fd
0 ./proc/1364
0 ./proc/1365/fd
0 ./proc/1365
0 ./proc/1368/fd
0 ./proc/1368
0 ./proc/1369/fd
0 ./proc/1369
du: ./proc/1370: No such file or directory
du: ./proc/1372/fd/4: No such file or directory
0 ./proc/1372/fd
0 ./proc/1372
5 ./proc
1 ./install
1 ./dist
1 ./mnt/cdrom
2 ./mnt
1 ./initrd
4 ./dev
1 ./enhancements/varhacks/hack/bin/-p
623 ./enhancements/varhacks/hack/bin
15 ./enhancements/varhacks/hack/etc/ncid
18 ./enhancements/varhacks/hack/etc
12 ./enhancements/varhacks/hack/doc/out2osd
166 ./enhancements/varhacks/hack/doc/ncid
179 ./enhancements/varhacks/hack/doc
186 ./enhancements/varhacks/hack/share/fonts
7 ./enhancements/varhacks/hack/share/ncid
194 ./enhancements/varhacks/hack/share
72 ./enhancements/varhacks/hack/sbin
1087 ./enhancements/varhacks/hack
3 ./enhancements/varhacks/log
3 ./enhancements/varhacks/spool/cron/crontabs
4 ./enhancements/varhacks/spool/cron
5 ./enhancements/varhacks/spool
1096 ./enhancements/varhacks
457 ./enhancements/drivers
3824 ./enhancements
57 ./hacks
5772 ./busybox
1 ./init/ptv_start
1 ./init/ptv_flags
86 ./init/ptv_images
91 ./init
1 ./-p
118495 .
Family-TiVo#


----------



## rbautch (Feb 6, 2004)

Often, deleting files is not enough to free up space. You have to run e2fsck. Make sure to mount ro first.


----------



## robn77 (Oct 26, 2001)

Can this be done in a running tivo or so I need to take the drive out.

Anything that I need to be worried about running it? 

Any switches that I need to run?

Do I accept what it askes me to change?

Thanks!


----------



## rbautch (Feb 6, 2004)

robn77 said:


> Can this be done in a running tivo or so I need to take the drive out.
> 
> Anything that I need to be worried about running it?
> 
> ...


Can be run on a running tivo. If your filesystem is not read-only it could fubar your tivo. I use e2fsck -p /dev/hda4.


----------



## robn77 (Oct 26, 2001)

That did it. Cleaned up half of the drive.

Thanks!


----------



## sk33t3r (Jul 9, 2003)

e2fsck -p /dev/hda4 
/dev/hda4 is mounted. Do you really want to continue (y/n)? yes

/dev/hda4 has reached maximal mount count, check forced.
Deleted inode 2068 has zero dtime.
Set dtime? yes

Deleted inode 4153 has zero dtime.
Set dtime? yes

Deleted inode 24656 has zero dtime.
Set dtime? yes

Fix summary information? yes

/dev/hda4: 1408/32768 files (1.3% non-contiguous), 72439/131072 blocks


----------



## rbautch (Feb 6, 2004)

sk33t3r said:


> e2fsck -p /dev/hda4
> /dev/hda4 is mounted. Do you really want to continue (y/n)? yes
> 
> /dev/hda4 has reached maximal mount count, check forced.
> ...


Nothing to be concerned about here. Those messages are common.


----------



## BTUx9 (Nov 13, 2003)

just FYI: every time you modify a running tivoapp (using superpatch or whatnot) it orphans a copy in the fs... it doesn't get cleaned up until you manually run an e2fsck


----------



## robn77 (Oct 26, 2001)

When setting the filesystem up as read only (using the ro alias), the response is:

mount: / is busy

How do I force it to be read only?

Thanks!


----------



## BTUx9 (Nov 13, 2003)

as long as a file is open for writing, you won't be able to remount r/o... that may be the problem now

the tivo boots readonly... if it's r/w, then something set it that way (often hackman)... disabling whatever is doing so and rebooting will get you back to readonly


----------



## robn77 (Oct 26, 2001)

No hackman but I am running(via author file):

/busybox/netserver
/enhancements/endpadplus
/enhancements/TWPrun.sh
mfs_ftp

And I also just ran bufferhack prior to trying to modify my tivoapp.

Any of these writing a file?

Thanks!


----------



## robn77 (Oct 26, 2001)

I do seem to have tvlog continually updating in /var/log but that is a different filesystem.

What program updates that file?

Thanks!


----------



## ocntscha (Oct 22, 2003)

BTUx9 said:


> just FYI: every time you modify a running tivoapp (using superpatch or whatnot) it orphans a copy in the fs... it doesn't get cleaned up until you manually run an e2fsck


Say what?? Can you elaborate on that BTUx9? Superpatch renames tivoapp to tivoapp.original, then creates a copy of tivoapp.original named tivoapp and then modifies that newly created copy. I wouldn't expect there to be any problem at all.


----------



## BTUx9 (Nov 13, 2003)

re: file being written to: not really sure... I believe zipper puts symlinks for most of those so things that WOULD be written would be under /var anyways (not sure about that)



ocntscha said:


> Say what?? Can you elaborate on that BTUx9? Superpatch renames tivoapp to tivoapp.original, then creates a copy of tivoapp.original named tivoapp and then modifies that newly created copy. I wouldn't expect there to be any problem at all.


when you rename tivoapp, running processes still reference it... that's why it's not even possible to overwrite/modify tivoapp when the tivo s/w is up and running... you have to move it out of the way, instead.

As I understand it, because of this the references to the original tivoapp get messed up... this would normally be caught and fixed by e2fsck, but that never gets run on root on a tivo, normally, so the space is still allocated even if the backup is later removed (might have to do with i-node count)

Hopefully somebody more knowledgable of linux can chime in with a yea or nay about this.


----------



## ocntscha (Oct 22, 2003)

BTUx9 said:


> Hopefully somebody more knowledgable of linux can chime in with a yea or nay about this.


Not saying I'm more knowledgeable of Linux but I do have some knowledge and I'm chiming in with a nay.

I'm not trying to be confrontational, just trying to further my own, or yours, or maybe both of our understanding.

Hmm, you know what, my Tivo upgraded to 8.1 a few weeks ago (as you are aware  ) About 10 minutes later I ran Superpatch on it. I also keep my root filesystem mounted rw all the time. I've never once run e2fsck on the root filesystem since getting that 8.1 upgrade and running Superpatch, never until just now that is. No problems detected..

[email protected]:~ bash# e2fsck -n /dev/hda7
e2fsck 1.06, 7-Oct-96 for EXT2 FS 0.5b, 95/08/09
Warning! /dev/hda7 is mounted.
/dev/hda7 has reached maximal mount count, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/hda7: 3357/32768 files (2.0% non-contiguous), 118448/131072 blocks

Doesn't jive with what you where saying Btux. Also, its the same procedure typically used to rotate log files without losing any log entries. The current log file is renamed but the application continues to log to it, then the application is signalled to open a new log file.


----------



## robn77 (Oct 26, 2001)

All I know is that I was trying to modify mt tivoapp and I kept getting the out of space message when copying it. Running the e2fsck cleared up the disk space twice now.

du was not showing the space as truly allocated so it still had to be somewhere.


----------



## BTUx9 (Nov 13, 2003)

OK, I found one of the references I was looking for, and my memory was only half right.
The issue is if you move your tivoapp and then delete the backup before a reboot (for instance, if you are doing several separate patches)

It ends up with an orphaned i-node that won't be removed without an e2fsck


----------



## ocntscha (Oct 22, 2003)

BTUx9 said:


> OK, I found one of the references I was looking for, and my memory was only half right.
> The issue is if you move your tivoapp and then delete the backup before a reboot (for instance, if you are doing several separate patches)
> 
> It ends up with an orphaned i-node that won't be removed without an e2fsck


Thanks for digging up the whole story BTUx9, I've learned something.


----------



## BTUx9 (Nov 13, 2003)

thanx for making me... I hate propagating misinformation (a pet peeve)


----------

