Sorry, I get into thinking about some things, and forget the minor details
of other things. So, dd will not work directly on a directory per se.
Technically dd can be used on single files, but that's a rather difficult
way of going about things. To clarify: Using dd on a single directory, that
directory would have to be on it's own block device. e.g. You'd need to
mount the cloud9 directory form it's own /dev/sdX device. However, you
could also use tar( whcih might be easier ) with I think it's the -P flag
option to preserve permissions. Double check that, I'm going form pure
memory.

On Wed, Apr 19, 2017 at 2:29 PM, William Hermans <yyrk...@gmail.com> wrote:

> Just a quick worklog to give an idea of how you set this up and how it
> works. Of course, you may want todo things a little differently. It depends
> on if you want to keep the cloud9 directory "updated" Meaning over time
> maybe updates have updated the files, so perhaps one could make a fresh img
> file very time the cloud9 directory is mounted for use. Perhaps that part
> could be done in memory, but keep in mind once the board loses power, that
> stored "data" will also be lost. Which is why I think the best way to go
> about things would be to store the directory structure we don't care about
> in memory.
>
> Also keep in mind that this is just an example, and the files I'm
> demonstrating with have nothing to do with cloud9. The overall concept
> however should be solid. As such, you may need to double check permissions
> etc. But if you use dd to create your image, directory structure along with
> file permissions should remain intact.
>
> *Load the zram kernel module:*
> root@wgd:~# *modprobe zram zram_num_devices=1*
>
> *Test to make sure driver module loaded:*
> root@wgd:~# *lsmod |grep zram*
> zram                   25049  0
> zsmalloc               13745  1 zram
> lz4_compress            3334  1 zram
>
> Notice here that zram is using the lz4 compression algorithm. This can be
> changed.
>
> *Set the zram memory constraints:*
> root@wgd:~# *echo '256M' > /sys/block/zram0/disksize*
> root@wgd:~# *echo '128M' > /sys/block/zram0/mem_limit*
>
> *Make a file system on our ramdisk:*
> root@wgd:~# *mkfs.ext4 /dev/zram0*
> mke2fs 1.43 (17-May-2016)
> Discarding device blocks: done
> Creating filesystem with 65536 4k blocks and 65536 inodes
> Filesystem UUID: 2a08c7dd-234f-497a-a89b-fe4ecbb78c3f
> Superblock backups stored on blocks:
>         32768
>
> Allocating group tables: done
> Writing inode tables: done
> Creating journal (4096 blocks): done
> Writing superblocks and filesystem accounting information: done
>
> *List directory contents( note" 'testfile' is empty ):*
> root@wgd:~# *ls*
> git  testfile
>
> *Get our current working directory:*
> root@wgd:~# *pwd*
> /root
>
> *Find our ramdisk device:*
> root@wgd:~# *ls /dev |grep zram**
> zram0
>
> *Mount our ramdisk at /root/ ( root's home directory ):*
> root@wgd:~# *mount /dev/zram0 /root*
>
> *The interesting part here is that we're still seeing our original file
> structure:*
> root@wgd:~# *ls*
> git  testfile
>
> *But once we change directory . . . The new structure shows up:*
> root@wgd:~# *cd /root/*
> root@wgd:~# *ls*
> lost+found
>
> *Create a new test file, and test:*
> root@wgd:~# *touch testfile*
> root@wgd:~# *ls*
> lost+found  testfile
> root@wgd:~# *echo "Hello World" > testfile*
> root@wgd:~# *cat testfile*
> Hello World
>
> *Unmount the ramdisk( note: one must change out of the mountpoint before
> unmounting ):*
> root@wgd:~# *cd ..*
> root@wgd:/# *umount /root/*
>
> *Change back into our root home directory and retest:*
> root@wgd:/# *cd ~*
> root@wgd:~# *ls*
> git  testfile
> root@wgd:~# *cat testfile*
> <no output>
>
> On Wed, Apr 19, 2017 at 1:10 PM, William Hermans <yyrk...@gmail.com>
> wrote:
>
>> By the way Mark my last comment was directed at you. But one thing I
>> forgot to mention is that once you unmount the tmpfs directory I mention
>> above, the original directory would be there still. So you'd want to take
>> steps to keep from overwriting files there. I mean you could technically
>> just revert the directory from the img file I suppose, but that would be a
>> minor hassle at best. Also, using the zram tmpfs method i mentioned above
>> would not require chroot at all.
>>
>> On Wed, Apr 19, 2017 at 1:06 PM, William Hermans <yyrk...@gmail.com>
>> wrote:
>>
>>> How about using a chroot ? Basically you keep a chroot image where ever
>>> you want, mount it where ever you want, and just wipe it out for a fresh
>>> start when you need to get back to pristine. I am trying to think what
>>> would be the smartest way to do this as you wouldn't necessarily want to
>>> spend a long time trying to get all this done. Then it may also make better
>>> sense to run this chroot from a tmpfs. So perhaps you copy the content of
>>> the cloud9 directory, into an img file. make a zram tmpfs, then just mount
>>> it over the top of the original cloud9 directory, and extract the img
>>> contents into that ramdisk ?
>>>
>>> On Wed, Apr 19, 2017 at 12:38 PM, Mark A. Yoder <mark.a.yo...@gmail.com>
>>> wrote:
>>>
>>>> The big picture is:  I'd like to use these in a workshop and the the
>>>> participants play all they want.  Once we are done I want to run one
>>>> command to reset everything.
>>>>
>>>> I can't count on having internet, so a local git repo sounds like a
>>>> good idea.
>>>>
>>>> --Mark
>>>>
>>>> On Wednesday, April 19, 2017 at 3:33:01 PM UTC-4, RobertCNelson wrote:
>>>>>
>>>>> On Wed, Apr 19, 2017 at 2:26 PM, Robert Nelson <robert...@gmail.com>
>>>>> wrote:
>>>>> > On Wed, Apr 19, 2017 at 1:34 PM, Mark A. Yoder <mark.a...@gmail.com>
>>>>> wrote:
>>>>> >> Robert:
>>>>> >>   It looks like all the files in /var/lib/cloud9/examples are owned
>>>>> by
>>>>> >> root:cloud9ide and are mode 664. They need to be mode 665, or maybe
>>>>> 667.
>>>>> >>
>>>>> >> Mode 667 would let people easily edit the files and experiment.
>>>>> Though it
>>>>> >> would also let people mess up the files.
>>>>> >>
>>>>> >> How about we have a parallel directory to examples that serves as a
>>>>> backup.
>>>>> >> They could all me mode 665 and the examples files would be 667.
>>>>> >
>>>>> > The debian user is part of the cloud9ide group, so the 664 should
>>>>> > work, or do you think it should be 674? so the cloud9ide group can
>>>>> > execute the file..
>>>>>
>>>>> The other issue, that whole directory get's extracted from the bone101
>>>>> package, so any changes to the package will wipe out that dir.
>>>>>
>>>>> Unless we move the examples to github and just create a local git
>>>>> clone?
>>>>>
>>>>> Regards,
>>>>>
>>>>> --
>>>>> Robert Nelson
>>>>> https://rcn-ee.com/
>>>>>
>>>> --
>>>> For more options, visit http://beagleboard.org/discuss
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "BeagleBoard" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to beagleboard+unsubscr...@googlegroups.com.
>>>> To view this discussion on the web visit https://groups.google.com/d/ms
>>>> gid/beagleboard/eaa04298-81a4-4af0-a033-fe369e458cc7%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/beagleboard/eaa04298-81a4-4af0-a033-fe369e458cc7%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/CALHSORpZcL37QsqyxYh-oLsmphRfPchyy5hos4oL-WFeA8j%3D%3Dg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to