PDA

نسخه کامل مشاهده نسخه کامل : راهنمای رایت Cd در لینوکس !!



Beelzebub
17-09-2005, 23:05
راهنمای رایت CD در لینوکس


لینوکس ابزارهای قدرتمند و قابل انعطافی برای رایت CD در اختیار کاربران قرار میدهد. شما میتوانید دیسکهایی ایجاد کنید که در تمام سیستم عامل ها قابل خواندن بوده و یا فایلهای iso را برای پخش کردن و یا دانلود تهیه کنید.

رایت کردن CD از خط فرمان در هر سیستم عاملی پر رمز و راز و دردسر ساز است. لینوکس هم در این میان استثنا نیست. تعداد زیادی از نرم افزارهای لینوکس با استفاده از فایلهای iso توزیع میشوند. بنابراین در صورتی که نحوه رایت کردن را یاد بگیرید، میتوانید به سادگی دیسکهای خود را با استفاده از این فایلهای ایزو ایجاد کنید.

نرم افزارهای رایت CD برای هر دو سیستم عامل لینوکس و ویندوز وجود دارند. ولی انواعی که برای لینوکس اراپه شده اند، از انواع مشابه خود در ویندوز قوی تر هستند. در این مقاله ما نگاهی به دو فرمان mkisofs و cdrecord خواهیم انداخت. این دو فرمان مسپولیت اصلی ایجاد CD ها را در لینوکس عهده دار هستند. فرمان mkisofs یک تصویر از CD که قرار است کپی شود با فرمت فایل ISO9660/JOLIET/HFS ایجاد میکند.

برای گرفتن نتایج همیشه سعی کنید آخرین نسخه این برنامه ها را تهیه کنید.آخرین نسخه ارائه شده، نسخه 2 است.

برای کسانی که در دنیای رایت CD تازه کار هستند چند اصطلاح را توضیح میدهیم:

-CD-R : دیسکهای قابل رایت. یکبار امکان رایت روی آنها وجود دارد.

-CD-RW : امکان رایت و پاک کردن و رایت دوباره روی این دیسکها وجود دارد. بیشتر درایوهای قدیمی امکان خواندن این نوع دیسکها را ندارند.

-CD های تجاری (نقره ای) به صورت پرس شده تولید میشوند نه بوسیله نور لیزر.

-Yellow Book : فورمت فیزیکی CD های حاوی داده.

-Orange Book : فرمت فیزیکی دیسکها CD-R.

-ISO9660 : استاندارد قدیمی فرمت فایل. با امکان ایجاد فایلهای 8.3 .

-Rock Ridge : اضافاتی برای استاندارد ISO9660 که در سیستمهای یونیکس امکان داشتن لینکها وجود داشته و تمام اطلاعات مالکیت و خصوصیات فایل حفظ میشوند. خصوصیات فایل یونیکس هنگامی که این دیسکها در ویندوز خوانده میشوند، نمایش داده نمی شود.

-Joliet : اضافات مایکروسافت برای استاندارد ISO9660 . با این اضافات امکان بکارگیری کاراکترهای یونیکد و نام بلند فایل در دیسکها وجود دارد.

-El Torito : فورمت دیسکهای قابل بوت.

-HFS : سیستم فایل اصلی مکینتاش.

-Multisession : با این قابلیت میتوان در دیسکی که هنوز پر نشده است، تا پر شدن کامل در چندین نوبت اقدام به رایت داده کرد. به شرطی که دیسک در دفعات قبلی بسته نشده باشد.


شبیه ساز اسکازی لینوکس

در لینوکس میتوانید از رایتر های SCSI و یا IDE/ATAPI استفاده کنید. رایترهای مبتنی بر پورت پارالل برایتان جز دردسر واذیت چیزی نخواهند بود. رایتر های مبتنی بر USB هم کند هستند. این دو نوع هیچکدام به خوبی در لینوکس پشتیبانی نمی شوند. البته شانس شما با درایوهای جدید USB 2.0 بیشتر خواهد بود.

برای بکارگیری رایترهای IDE/ATAPI که عمومی ترین رایتر ها هستند، مقداری تنظیم باید انجام دهید. برای اینکه ببینید در لینوکس تان این تنظیمات قبلا انجام شده است یا نه، دستور زیر را تایپ کنید:

$ cdrecord -scanbus

در صورتی که درایو رایتر شما نمایش داده شد، همه چیز آماده است و نیاز به انجام کار دیگری ندارید. در غیر اینصورت باید تنظیم کوچکی انجام دهید. ابتدا باید ببینید که نام درایوهای نصب شده در کامپیوترتان چیست. برای این کار دستور زیر را تایپ کنید:

$ dmesg | grep '^hd.:'

خروجی مشابه زیر دریافت خواهید کرد:

hda: WDC WD400EB-00CPF0, ATA DISK drive

hdb: CD-W58E, ATAPI CD/DVD-ROM drive

hdc: GCR-8521B, ATAPI CD/DVD-ROM drive

خوب در اینجا نام دستگاه رایتر ما hdb و درایو CD معمولی hdc است. برای بکارگیری این دو درایو برای کارهای رایت در لینوکس باید آنها را در حالت شبیه سازی اسکازی قرار دهید. برای این کار :

در صورتی که از لیلو استفاده میکنید دو خط زیر را به آخر آن اضافه کنید:

append="hdb=ide-scsi"
append="hdc=ide-scsi"

این کار را در حالتی که کاربر root هستید و با استفاده از ویرایشگر متنی مانند vi انجام دهید. در صورتی که از گراب استفاده میکنید باید در فایل etc/grub.conf در پایان خط kernel خط زیر را اضافه کنید:

hdb=ide-scsi hdc=ide-scsi

قرار دادن درایوها در حالت شبیه سازی اسکازی تغییری در عملکرد آنها ایجاد نمی کند بلکه فقط نام آنها تغییر خواهد کرد. حال کامپیوترتان را بوت کرده و مجددا فرمان زیر را تایپ کنید:

$ cdrecord -scanbus

در صورتی که خروجی مانند زیر دریافت کردید همه چیز درست است:

Cdrecord 2.0 (i686-pc-linux-gnu) Copyright (C) 1995-2002 Jurg Schilling

Linux sg driver version: 3.1.24

Using libscg version 'schily-0.7'

cdrecord: Warning: using inofficial libscg transport code version (schily - Red

Hat-scsi-linux-sg.c-1.75-RH '@(#)scsi-linux-sg.c 1.75 02/10/21 Copyright

1997 J. Schilling').

scsibus0:

0,0,0 0) 'TEAC ' 'CD-W58E ' '1.0A' Removable CD-ROM

0,1,0 1) 'HL-DT-ST' 'CD-ROM GCR-8521B' '1.00' Removable CD-ROM



ایجاد فایلهای ISO

پس از اینکه فایلهای مورد نظر برای رایت شدن را انتخاب کردید، رایت CD را باید در دو مرحله انجام دهید. ایجاد فایل ایزو توسط دستور mkisofs و سپس رایت آن توسط دستور cdrecord . مثال زیر نحوه ایجاد یک فایل ایزو را نشان میدهد:

$ mkisofs -o test.iso -Jrv -V test_disk /home/carla/

در مثال بالا:

-گزینه o نام فایل ایزو را مشخص میکند.

-گزینه J از استاندارد نامگذاری Joliet برای سازگاری با ویندوز استفاده میکند.

-گزینه r از استاندارد نامگذاری Rock Ridge برای سازگاری با لینوکس و یونیکس استفاده میکند.

-گزینه v حالت verbose است.

-گزینه V یک نام برای دیسک ایجاد میکند که در Windows Explorer نمایش داده میشود.

-گزینه آخر مسیر فایلهایی است که از آنها فایل ایزو تهیه میشود.

پس از اینکه ایجاد فایل iso به اتمام رسید، میتوانید آنرا مانند یک فایل سیستم متصل(mount) کرده و صحت محتویات آنرا بررسی کنید :

$ mkdir /test_iso
$ mount -t iso9660 -o ro,loop=/dev/loop0 test.iso /test_iso


رایت کردن دیسک

رایت کردن دیسک به آسانی خوردن یک شیرینی است. ابتدا باید آدرس درایو رایتر خود را پیدا کنیم. در دستور cdrecord -scanbus که در بالا مشاهده کردید، آدرس رایتر ما 0,0,0 است. برای شروع رایت دیسک دستور زیر را تایپ کنید:

$ cdrecord -v -eject speed=8 dev=0,0,0 test.iso

در دستور بالا:

-گزینه v حالت Verbose است.

-گزینه eject پس از اتمام رایت، دیسک را از درایو خارج میکند.

-گزینه speed سرعت رایت را مشخص میکند.

-گزینه dev آدرس رایتر را مشخص میکند.

-گزینه پایانی هم نام فایل ایزو است.

خوب این هم راه ایجاد دیسکی که در تمام پلاتفورم ها قابل خواندن خواهد بود. عموما در دستگاههای سریع، هنگام کار چندان از منابع سیستم استفاده نمی شود ولی با این حال بهتر است هنگام رایت کردن به انجام کارهای دیگر نپردازید. استفاده از سرعتهای پایین تر از سرریز بافر و سوختن دیسک در درایوهای رایتر قدیمی جلوگیری میکند. درایوهای جدید دارای تکنولوژی به نام Burn-Proof هستند که از این امر جلوگیری به عمل میاورد.


کپی دیسک

برای کپی مستقیم یک CD از درایو CD-ROM به رایتر میتوانید از دستور زیر استفاده کنید:

$ cdrecord -v dev=0,0,0 speed=4 -isosize /dev/scd0

البته این کار را در یک دستگاه قدیمی و کند انجام ندهید! این راه سریع است ولی ممکن است ایجاد اشکال کند. راه بهتر و امن تر کپی محتویات دیسک در دیسک سخت و سپس رایت آن است:

$ mount /cdrom
$ dd if=/dev/scd0 of=/tmp/diskfile.iso
$ cdrecord dev=0,0,0 speed=8 fs=8m -v -eject -dummy /tmp/diskfile.iso

در مثال بالا:

-گزینه fs=8m سایز بافر را تعیین میکند. هرچه بیشتر بهتر.

-گزینه dummy ابتدا حالت رایت را شبیه سازی کرده و در صورت نبود اشکال رایت انجام میشود.


دیسکهای Multisession

میتوانید دیسکها را تا پر شدن، در چندین نوبت رایت کنید. ایجاد این نوع دیسکها با استفاده از برنامه های گرافیکی رایت CD آسانتر خواهد بود ولی امکان انجام آن با خط فرمان هم وجود دارد:

$ cdrecord -v -eject speed=8 dev=0,0,0 -multi test.iso

با گزینه multi دیسک در پایان رایت باز گذاشته شده و میتوانید در آینده نیز به آن اطلاعات اضافه کنید. هنگامی که میخواهید مجددا با دیسک اطلاعات اضافه کنید، ابتدا قبل از ایجاد فایل ISO باید مشخص کنید که فضای خالی از چه قسمتی از دیسک شروع میشود. برای این کار از دستور زیر استفاده کنید:

$ cdrecord dev=0,0,0 -msinfo
0,27139

حتما دیسکی که میخواهید اطلاعات به آن اضافه کنید در درایو قرار داشته باشد. سپس فرمان زیر را برای ایجاد فایل ایزو تایپ کنید:

$ mkisofs -o test2.iso -Jr -V Session2 -C 0,27139 -M 0,0,0 /files/path/

و یا میتوانید دو دستور بالا را با هم ترکیب کنید تا کار آسانتر شود:

$ mkisofs -o test2.iso -Jr -V Session2 -C `cdrecord dev=0,0,0 -msinfo` -M 0,0,0 /files/path/


نتیجه گیری

رایت دیسک با استفاده از خط فرمان لینوکس بسیار قوی و انعطاف پذیر است. از دو دستور mkisofs و cdrecord میتوانید برای رایت دیسکهای DVD نیز استفاده کنید. توجه داشته باشید که برنامه های گرافیکی زیادی برای رایت CD همراه با و خارج از لینوکس وجود دارند ولی شما در خط فرمان میتوانید بسیار قدرتمند تر و انعطاف پذیرتر عمل کنید در حالی که در برنامه های گرافیکی راحتی کار بیشتر است.