یکی از مشکلاتی که بسیاری از کاربران لینوکس که با فایلهای چند رسانهای سر و کار دارند با آن برخورد میکنند، اشکال در کپی کردن فایلهای dat موجود بر روی vcd ها به کامپیوترشان است. Michiel Ronsse با نوشتن یک ماژول برای هسته لینوکس این مشکل را بطرف نموده است. در حقیقت Cdfs بجای اینکه فایلهای درون یک CD Multisession را به شما نمایش دهد، هر Session را بصورت یک فایل جداگانه برایتان به نمایش خواهد گذاشت. همانطور که میدانید دیسکهای vcd و audio cd خود به نوعی دیسکهای multisession هستند، بنابراین با استفاده از cdfs خواهید توانست محتویات آنها را به آسانی بر روی دیسک سختتان کپی نمایید. اکنون اجازه دهید به فرایند نصب و استفاده از Cdfs در لینوکس به پردازیم. ● اقلام مورد نیاز برای نصب و استفاده از Cdfs شما به یک هسته کاپایل شده با کد منبع آن و یا یک بسته هسته نصب شده به همراه kernel-headers مربوط به آن نیاز خواهید داشت. به این منظور کافی است هسته سیستم خود را کامپایل و نصب نمایید و یا بسته kernel-headers را که به همراه توزیعتان ارائه شده است را نصب نمایید. مثلا در دبیان کافی است دستورات زیر را وارد نمایید: # uname -r ۲.۶.۷-۱-k۷ با دستور بالا متوجه میشوید که در حال حاضر چه هستهای بر روی سیستمتان نصب شده است تا kernel-headers مربوط به آنرا نصب نمایید. # apt-get install kernel-headers-۲.۶.۷-۱-k۷ Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: kernel-headers-۲.۶.۷-۱ kernel-kbuild-۲.۶-۳ The following NEW packages will be installed: kernel-headers-۲.۶.۷-۱ kernel-headers-۲.۶.۷-۱-k۷ kernel-kbuild-۲.۶-۳ ۰ upgraded, ۳ newly installed, ۰ to remove and ۰ not upgraded. Need to get ۲۹۹۳kB/۳۳۴۵kB of archives. After unpacking ۴۱.۶MB of additional disk space will be used. Do you want to continue? [Y/n] y ▪ شروع نصب کامپایل و نصب Cdfs آسانتر از آن چیزی است که فکرش را بکنید. ابتدا کافی است بسته آنرا با دستور زیر باز کنید: # tar -jxf cdfs-۲.۶.۳a.tar.bz۲ سپس وارد دایرکتوری آن شده و دستور کامپایل و نصب آنرا صادر نمایید: # cd cdfs-۲.۶.۳a # make make -C /lib/modules/۲.۶.۷-۱-k۷/build SUBDIRS=/home/alan/cdfs-۲.۶.۳a modules make[۱]: Entering directory `/usr/src/kernel-headers-۲.۶.۷-۱-k۷&#۰۳۹ CC [M] /home/alan/cdfs-۲.۶.۳a/root.o CC [M] /home/alan/cdfs-۲.۶.۳a/audio.o CC [M] /home/alan/cdfs-۲.۶.۳a/cdXA.o CC [M] /home/alan/cdfs-۲.۶.۳a/cddata.o CC [M] /home/alan/cdfs-۲.۶.۳a/hfs.o CC [M] /home/alan/cdfs-۲.۶.۳a/iso.o CC [M] /home/alan/cdfs-۲.۶.۳a/proc.o CC [M] /home/alan/cdfs-۲.۶.۳a/utils.o CC [M] /home/alan/cdfs-۲.۶.۳a/daemon.o CC [M] /home/alan/cdfs-۲.۶.۳a/discid.o CC [M] /home/alan/cdfs-۲.۶.۳a/toc.o LD [M] /home/alan/cdfs-۲.۶.۳a/cdfs.o Building modules, stage ۲. MODPOST CC /home/alan/cdfs-۲.۶.۳a/cdfs.mod.o LD [M] /home/alan/cdfs-۲.۶.۳a/cdfs.ko make[۱]: Leaving directory `/usr/src/kernel-headers-۲.۶.۷-۱-k۷&#۰۳۹ # make install make -C /lib/modules/۲.۶.۷-۱-k۷/build SUBDIRS=/home/alan/cdfs-۲.۶.۳a modules_install make[۱]: Entering directory `/usr/src/kernel-headers-۲.۶.۷-۱-k۷&#۰۳۹ INSTALL make[۱]: Leaving directory `/usr/src/kernel-headers-۲.۶.۷-۱-k۷&#۰۳۹ ماژول هسته Cdfs با موفقیت کامپایل و نصب شد. اکنون به سادگی خواهید توانست از آن استفاده نمایید. برای بارگزاری ماژول در هسته میتوانید از دستورات زیر استفاده نمایید: # modprobe cdfs یا # insmod cdfs.ko سپس میتوانید با دستور زیر صحت نصب آنرا بررسی نمایید: # cat /proc/cdfs [cdfs ۲.۶.۳a] No CD mounted محل نصب ماژول هسته در مسیر lib/modules/۲.۶.۷-۱-k۷/extra/cdfs.ko/ میباشد. توضیح دیگر اینکه عمل کامپایل را با یک کاربر معمولی نیز میتوانید انجام دهید، ولی برای نصب و فعال سازی ماژول حتما باید در حالت کاربر ریشه قرار داشته باشید. پس از اتمام نصب میتوانید دایرکتوری کد منبع Cdfs را حذف نمایید. با دستور زیر نیز میتوانید دیسکهای vcd و یا audio cd را متصل نمایید: # mount -t cdfs -o ro /dev/cdromX /mount point که بجای cdromX باید نام دستگاه cdrom مانند cdrom۰ و بجای mount point نیز باید مسیری را که مایلید دیسک در آن متصل شود را وارد نمایید. برای مثال: # mount -t cdfs -o ro /dev/cdrom۱ /media/cdrom۱ حال اگر دستور cat /proc/cdfs را وارد نمایید، خروجی مشابه زیر مشاهده خواهید نمود: # cat /proc/cdfs [cdfs ۲.۶.۳a] CD (discid=۰B۱۰۲F۰۲) contains ۲ tracks: Track ۱: data track (sessions_۱-۱.iso), [۰-۳۱۰۷۶۶/۱۲۵۱], length=۲ MB type: ۱ info: CD۰۰۱ version: ۱ date: ۰۲/۰۳/۲۰۰۴ time: ۰۹:۳۷:۰۰ system: CD-RTOS CD-BRIDGE volume: VCD۰۰۱ publisher: preparer: application: CDI/CDI_VCD.APP;۱ length: ۶۰۶ MB / ۲ MB / ۶۰۶ MB / ۲ MB Track ۲: data track (videocd-۱.mpeg), [۱۲۵۲-۳۱۰۷۶۵], length=۷۰۲۴۴۹ kB type: VIDEO_CD title: framesize: ۲۳۲۴ B در صورتی که یک دیسک vcd را متصل کرده باشید، در برنامههای مدیر فایل یک فایل iso و یک فایل videocd۱.mpeg مشاهده خواهید کرد که میتوانید به سادگی فایل videocd۱.mpeg را به دیسک سخت خود کپی نمایید. در مورد دیسکهای audio cd این وضعیت به صورت تعدادی فایل wav میباشد که همان track های تشکیل دهنده CD هستند. کافی است آنها را کپی نموده و استفاده کنید و یا اگر کمی حوصله داشته باشید میتوانید آنها را به فرمتهای دیگر مانند ogg vorbis تبدیل نمایید. برای مثال $ oggenc /media/cdrom۱/track-۰۱.wav -o /home/alan/track۰۱.ogg البته نرمافزارهای ripper که تعداد آنها در لینوکس کم نیست این کار را خیلی راحتتر انجام میدهند و نیازی هم به Cdfs ندارند. برای خواندن محتویات فایلهای ISO مربوط به sessionهای مختلف روی یک دیسک یا vcd هم میتوانید از دستوری مشابه دستور زیر استفاده نمایید: # mount -t iso۹۶۶۰ -o ro,loop=/dev/loop۰ /media/cdrom۱/sessions_۱-۱.iso /mnt/tmp بدیهی است که باید به جای media/cdrom۱/ و mnt/tmp/ مسیر درایو و محل اتصال مورد نظر در کامپیوتر خودتان را وارد نمایید. ▪ ساخت مجدد یک Video CD در صورتی که بسته نرمافزاری vcdimager در کامپیوترتان نصب باشد، با استفاده از نرمافزارهایی مانند k۳b میتوانید مجددا فایل mpeg خوانده شده را به vcd تبدیل نمایید. ● نتیجه گیری بسته ماژول Cdfs یکی از مواردی را که برخی اوقات باعث دردسر زیادی در لینوکس میشد را برطرف نموده و امکان کپی راحت فایلهای track موجود بر روی دیسکهای audio cd را نیز فراهم کرده است.